@font-face{font-family:"Nunito";src:url(/fonts/nunito.woff2) format("woff2");font-weight:200 1000;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url(/fonts/nunito-sans.woff2) format("woff2");font-weight:200 1000;font-display:swap}
@font-face{font-family:"Material Symbols Rounded";src:url(/v12/symbols.5c72f6ff90.woff2) format("woff2");font-weight:400;font-display:block}

/* Estilo: Material 3 plano. La paleta por defecto sale del rojo de marca de ZIRPA (#CA2341);
   las otras paletas las pone el script sobre estas mismas variables. */
:root{
  --bg:#FBF3F3; --surface:#FFFBFB; --container:#F6E9EA; --container-hi:#EFDFE1;
  --outline:#D6BFC2; --outline-soft:#ECDDDF; --ink:#23191B; --ink-2:#534346; --ink-3:#6F605C;
  --primary:#B3203A; --on-primary:#fff; --primary-c:#FFD9DC; --on-primary-c:#410010; --inv-primary:#FFB2B9;
  --tertiary:#7B5800; --tertiary-c:#FFDEA6; --on-tertiary-c:#271900;
  --brand:#CA2341; --brand-2:#1F1416;
  --fest:#8A5D00; --fest-c:#FFE2AC; --on-fest-c:#2A1A00; --azul:#2A4E9C;
  --good:#1E6B45; --good-c:#D3EEDC; --warn:#8C3B0E; --warn-c:#FFE0CF;
  --water:#B7D3E8; --water-edge:#9CC2DE; --park:#D5E7CC; --fabric:#9D8589;
  --shadow-1:0 1px 2px rgba(60,20,28,.10),0 1px 3px 1px rgba(60,20,28,.06);
  --shadow-1-up:0 -1px 2px rgba(60,20,28,.10),0 -1px 3px 1px rgba(60,20,28,.06); --edge-sh:rgba(60,20,28,.16);
  --shadow-2:0 2px 6px 2px rgba(60,20,28,.10),0 1px 2px rgba(60,20,28,.14);
  --scrim:rgba(35,15,20,.42);
  --display:"Nunito","Trebuchet MS",system-ui,sans-serif;
  --body:"Nunito Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  /* Movimiento Material 3: enfatizado, entrar (decelerar), salir (acelerar) y muelle expresivo */
  --ease:cubic-bezier(.2,0,0,1); --ease-d:cubic-bezier(.05,.7,.1,1); --ease-a:cubic-bezier(.3,0,.8,.15);
  --spring:cubic-bezier(.38,1.21,.22,1); --spring-fast:cubic-bezier(.42,1.67,.21,.9);
  /* Formas Material 3: 4 · 8 · 12 · 16 · 28 */
  --r-xs:4px; --r-s:8px; --r-m:12px; --r-l:16px; --r-xl:28px;
  --nav-h:80px; --top-h:64px; --safe-t:env(safe-area-inset-top,0px); --safe-b:env(safe-area-inset-bottom,0px);
  --k-musica:#3558A8;--kt-musica:#DCE3FA; --k-teatro:#8B3A8F;--kt-teatro:#F6DDF5; --k-humor:#A64D0E;--kt-humor:#FCE3D0;
  --k-cine:#50606F;--kt-cine:#DFE5EB; --k-museo:#0F746A;--kt-museo:#D3EEEA; --k-fiesta:#B0233C;--kt-fiesta:#FADADF;
  --k-mercado:#4A7219;--kt-mercado:#E0EDCD; --k-feria:#8B5C00;--kt-feria:#F8E6C0; --k-circo:#6546B0;--kt-circo:#E6DEFA;
  --k-deporte:#11689E;--kt-deporte:#D4E8F6; --k-ruta:#287445;--kt-ruta:#D5EEDD; --k-libro:#7D5234;--kt-libro:#F2E1D5;
  --k-atril:#6B6516;--kt-atril:#EDEBC6; --k-taller:#AE376D;--kt-taller:#FADCE9; --k-otros:#5F6368;--kt-otros:#E6E7E9; --k-juego:#00677D;--kt-juego:#CFEDF5; --k-charla:#5B4A6B;--kt-charla:#E8E1EE;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#151213; --surface:#1D191A; --container:#262122; --container-hi:#302A2B;
  --outline:#5E5355; --outline-soft:#3A3334; --ink:#F3EAEB; --ink-2:#D5C9CA; --ink-3:#A09395;
  --primary:#FFB2B9; --on-primary:#67001B; --primary-c:#6A1828; --on-primary-c:#FFDADD; --inv-primary:#B3203A;
  --tertiary:#F2BF48; --tertiary-c:#5C4200; --on-tertiary-c:#FFDEA6; --brand:#E0455F; --brand-2:#F3EAEB; --mark-z:#151213;
  --fest:#F2BF48; --fest-c:#4E3900; --on-fest-c:#FFE2AC; --azul:#9DB8F2;
  --good:#95D7AE; --good-c:#1F4430; --warn:#FFB68C; --warn-c:#5A2A12;
  --water:#3F5670; --water-edge:#4D6886; --park:#34402F; --fabric:#A39A9B;
  --shadow-1:0 1px 2px rgba(0,0,0,.3),0 1px 3px 1px rgba(0,0,0,.15);
  --shadow-1-up:0 -1px 2px rgba(0,0,0,.3),0 -1px 3px 1px rgba(0,0,0,.15); --edge-sh:rgba(0,0,0,.45);
  --shadow-2:0 2px 6px 2px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.3);
  --scrim:rgba(0,0,0,.6);
  --k-musica:#B1C5FF;--kt-musica:#2E3857; --k-teatro:#F2B0F2;--kt-teatro:#4A284D; --k-humor:#FFB787;--kt-humor:#4F301C;
  --k-cine:#BCC9D6;--kt-cine:#333B44; --k-museo:#7FD6CB;--kt-museo:#1C403C; --k-fiesta:#FFB2BB;--kt-fiesta:#56222C;
  --k-mercado:#B0D784;--kt-mercado:#303F1F; --k-feria:#F5BE52;--kt-feria:#4A3A15; --k-circo:#CDBDFF;--kt-circo:#392D57;
  --k-deporte:#93CDF6;--kt-deporte:#1E394D; --k-ruta:#8FD8A7;--kt-ruta:#1F402C; --k-libro:#EDBE9B;--kt-libro:#473024;
  --k-atril:#D6CE7E;--kt-atril:#3B391B; --k-taller:#FFAFD0;--kt-taller:#512439; --k-otros:#C4C7CC;--kt-otros:#373A3E; --k-juego:#7DD3EA;--kt-juego:#16404A; --k-charla:#CDB9E0;--kt-charla:#362C40;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#151213; --surface:#1D191A; --container:#262122; --container-hi:#302A2B;
  --outline:#5E5355; --outline-soft:#3A3334; --ink:#F3EAEB; --ink-2:#D5C9CA; --ink-3:#A09395;
  --primary:#FFB2B9; --on-primary:#67001B; --primary-c:#6A1828; --on-primary-c:#FFDADD; --inv-primary:#B3203A;
  --tertiary:#F2BF48; --tertiary-c:#5C4200; --on-tertiary-c:#FFDEA6; --brand:#E0455F; --brand-2:#F3EAEB; --mark-z:#151213;
  --fest:#F2BF48; --fest-c:#4E3900; --on-fest-c:#FFE2AC; --azul:#9DB8F2;
  --good:#95D7AE; --good-c:#1F4430; --warn:#FFB68C; --warn-c:#5A2A12;
  --water:#3F5670; --water-edge:#4D6886; --park:#34402F; --fabric:#A39A9B;
  --shadow-1:0 1px 2px rgba(0,0,0,.3),0 1px 3px 1px rgba(0,0,0,.15);
  --shadow-1-up:0 -1px 2px rgba(0,0,0,.3),0 -1px 3px 1px rgba(0,0,0,.15); --edge-sh:rgba(0,0,0,.45);
  --shadow-2:0 2px 6px 2px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.3);
  --scrim:rgba(0,0,0,.6);
  --k-musica:#B1C5FF;--kt-musica:#2E3857; --k-teatro:#F2B0F2;--kt-teatro:#4A284D; --k-humor:#FFB787;--kt-humor:#4F301C;
  --k-cine:#BCC9D6;--kt-cine:#333B44; --k-museo:#7FD6CB;--kt-museo:#1C403C; --k-fiesta:#FFB2BB;--kt-fiesta:#56222C;
  --k-mercado:#B0D784;--kt-mercado:#303F1F; --k-feria:#F5BE52;--kt-feria:#4A3A15; --k-circo:#CDBDFF;--kt-circo:#392D57;
  --k-deporte:#93CDF6;--kt-deporte:#1E394D; --k-ruta:#8FD8A7;--kt-ruta:#1F402C; --k-libro:#EDBE9B;--kt-libro:#473024;
  --k-atril:#D6CE7E;--kt-atril:#3B391B; --k-taller:#FFAFD0;--kt-taller:#512439; --k-otros:#C4C7CC;--kt-otros:#373A3E; --k-juego:#7DD3EA;--kt-juego:#16404A; --k-charla:#CDB9E0;--kt-charla:#362C40;
  color-scheme:dark}

/* Color por tipo de plan: --g color, --gt fondo suave */
.k-musica{--g:var(--k-musica);--gt:var(--kt-musica)} .k-teatro{--g:var(--k-teatro);--gt:var(--kt-teatro)} .k-humor{--g:var(--k-humor);--gt:var(--kt-humor)}
.k-cine{--g:var(--k-cine);--gt:var(--kt-cine)} .k-museo{--g:var(--k-museo);--gt:var(--kt-museo)} .k-fiesta{--g:var(--k-fiesta);--gt:var(--kt-fiesta)}
.k-mercado{--g:var(--k-mercado);--gt:var(--kt-mercado)} .k-feria{--g:var(--k-feria);--gt:var(--kt-feria)} .k-circo{--g:var(--k-circo);--gt:var(--kt-circo)}
.k-deporte{--g:var(--k-deporte);--gt:var(--kt-deporte)} .k-ruta{--g:var(--k-ruta);--gt:var(--kt-ruta)} .k-libro{--g:var(--k-libro);--gt:var(--kt-libro)}
.k-atril{--g:var(--k-atril);--gt:var(--kt-atril)} .k-taller{--g:var(--k-taller);--gt:var(--kt-taller)} .k-otros{--g:var(--k-otros);--gt:var(--kt-otros)} .k-juego{--g:var(--k-juego);--gt:var(--kt-juego)} .k-charla{--g:var(--k-charla);--gt:var(--kt-charla)}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-gutter:stable}
/* El mapa no se desplaza: sin el hueco de la barra de desplazamiento */
html.v-mapa{scrollbar-gutter:auto}
html.locked{overflow:hidden}
html.scroll-frozen body{position:fixed;top:var(--locked-top,0px);left:0;right:0;width:100%;overflow:hidden}
html,body{min-height:100%}
/* overflow-x:clip y no hidden: «hidden» convierte el body en contenedor de scroll y rompe la barra pegada al abrir una ficha */
body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.5 var(--body);-webkit-font-smoothing:antialiased;overflow-x:clip}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a{color:inherit;-webkit-tap-highlight-color:transparent}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}
/* ZIRPA-APP (Jorge 3-oct, 22:22, «la lupa a veces se pone con un círculo rojo»): al cerrar la búsqueda, una hoja o un menú,
   el foco vuelve al botón que lo abrió, y Chrome le pone el aro de :focus-visible si lo último fue escribir (también con el
   teclado del móvil). Después de tocar con el dedo (html.tap, 6-events.js) los botones no llevan aro; con Tab, sí */
html.tap :is(button,a,[role="button"],[role="tab"],[tabindex]):focus-visible{outline:none}
.ms{font-family:"Material Symbols Rounded"!important;font-weight:400!important;font-style:normal;font-size:22px;line-height:1;display:inline-block;width:1em;height:1em;overflow:hidden;flex:none;letter-spacing:normal;text-transform:none;white-space:nowrap;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num{font-variant-numeric:tabular-nums}
hr.div{border:0;height:1px;background:var(--outline-soft);margin:0}
/* Línea fina que acompaña a los títulos de sección */
.cenefa{flex:1;height:1px;background:var(--outline-soft)}

/* ---------- Logo ---------- */
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex:none;min-width:0}
.logo .mark{width:40px;height:40px;flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.18))}
.logo .word{display:grid;line-height:1}
.logo b{font:1000 29px/1 var(--display);letter-spacing:-.035em;color:var(--brand);white-space:nowrap}
/* ZIRPA-APP (decisión 2-oct; negro desde el 4-oct, logo oficial): el rombo pequeño, centrado sobre la «ı». El espaciado negativo de la palabra encogía la caja
   de la letra (y el 50 % caía medio píxel a la izquierda): la letra va sin él y lo recupera con el margen */
.logo b .i,.wl-brand b .i{position:relative;display:inline-block;letter-spacing:0;margin-right:-.035em}
.logo b .i::after,.wl-brand b .i::after{content:"";position:absolute;left:50%;top:.11em;width:.19em;height:.19em;background:var(--brand-2);border-radius:2px;transform:translateX(-50%) rotate(45deg)}
.logo small{margin-top:3px;font:800 9.5px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}

/* ---------- Barra superior (todas las pantallas) ---------- */
.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:4px;height:calc(var(--top-h) + var(--safe-t));padding:var(--safe-t) max(8px,env(safe-area-inset-right,0px)) 0 max(14px,env(safe-area-inset-left,0px));background:var(--bg);transition:transform .32s var(--ease),background .2s,box-shadow .2s}
.topbar.lifted{box-shadow:var(--shadow-1)}
.topbar .grow{flex:1;min-width:4px}
.tabs{display:none}
.iconbtn{position:relative;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--ink-2);transition:background .2s,color .2s;flex:none}
/* ZIRPA-APP (Jorge 3-oct, 22:22): el gris de «hover» solo con ratón; en el móvil se quedaba pegado después de tocar */
@media (hover:hover){.iconbtn:hover{background:color-mix(in oklab,var(--ink) 8%,transparent)}}
.iconbtn:active{background:color-mix(in oklab,var(--ink) 12%,transparent)}
.iconbtn:disabled{opacity:.35;pointer-events:none}
.iconbtn[aria-pressed="true"]{background:var(--primary-c);color:var(--on-primary-c)}
/* Iconos de la barra de arriba (Jorge 19-oct, opción D): los mismos de color (gris) y de grosor; solo la cuenta va en su círculo de color */
.iconbtn.sos{color:var(--ink-2)}
.topbar :is(.iconbtn,.avatarbtn) .ms{-webkit-text-stroke:.4px currentColor}
.searchpill{display:none}
.avatarbtn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--primary-c);color:var(--on-primary-c);font:900 15px/1 var(--display);margin-left:4px}
.avatarbtn .ms{font-size:24px}
.avatarbtn[aria-current="page"]{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--primary)}
/* ZIRPA-APP (Jorge 3-oct, captura 16): los cuatro de arriba (buscar, ayuda, tema y cuenta) igual de separados: cuatro
   huecos de 44×44 con 2 px entre ellos (46 px de centro a centro, como la barra de las páginas del servidor). El círculo de
   la cuenta (34 px) va centrado en su hueco, como los iconos en el suyo */
@media (max-width:899px){
  .topbar{gap:2px}
  .topbar .iconbtn{width:44px;height:44px}
  .avatarbtn{position:relative;isolation:isolate;width:44px;height:44px;margin:0;background:none;font-size:13px}
  .avatarbtn::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--primary-c);z-index:-1}
  .avatarbtn[aria-current="page"]{box-shadow:none}
  .avatarbtn[aria-current="page"]::before{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--primary)}
  .avatarbtn .ms{font-size:20px}
}
/* La pestaña de fiestas (Pilares, Halloween) se ve como las demás: gris sin elegir y de color al elegirla (Jorge 19-oct) */
.navbtn .msf .k{fill:var(--primary-c)}
/* En Pilares ya estás: el punto de «llega pronto» se aparta en vez de morder la píldora */
.navbtn .badge.dot{transition:opacity .2s var(--ease),transform .2s var(--ease)}
.navbtn[aria-current="page"] .badge.dot{opacity:0;transform:scale(.4)}
.navbtn.fest .badge{left:34px;background:var(--fest);color:var(--fest-c);white-space:nowrap}
.navbtn .badge.dot{min-width:0;width:10px;height:10px;padding:0;left:auto;right:14px;top:2px;border:2px solid var(--surface)}
.editbar{position:sticky;top:calc(var(--top-h) + var(--safe-t) + var(--band));z-index:35;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 16px;background:var(--azul);color:#fff;font:700 13px/1.3 var(--body)}
.editbar .ms{font-size:20px}
.editbar .txt{flex:1;min-width:120px}
.editbar .n{display:inline-block;margin-left:2px;padding:2px 6px;border-radius:8px;background:#fff;color:var(--azul);font:900 11px/1 var(--body)}
@media (max-width:599px){.editbar{flex-wrap:nowrap}.editbar .long{display:none}.editbar button{flex:none}}
.editbar button{padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.18);font:800 13px/1 var(--body);color:#fff}

/* Apariencia: menú del botón de tema */
.popover{position:fixed;z-index:75;max-height:calc(100dvh - 16px);overflow-y:auto;overscroll-behavior:contain;width:min(320px,calc(100vw - 24px));padding:14px;border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow-2);animation:pop-in .24s var(--ease-d) both;transform-origin:top right}
.popover h4,.group .card h3{margin:2px 4px 8px;font:900 15px/1.2 var(--display)}
.popover .seg3,.card .seg3,.wl-install .seg3{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--outline);border-radius:999px;overflow:hidden;margin-bottom:14px}
.popover .seg3 button,.card .seg3 button,.wl-install .seg3 button{position:relative;min-height:40px;display:flex;align-items:center;justify-content:center;gap:6px;font:800 13px/1 var(--body);color:var(--ink-2)}
.popover .seg3 button+button,.card .seg3 button+button,.wl-install .seg3 button+button{border-left:1px solid var(--outline)}
.popover .seg3 button .ms,.card .seg3 button .ms,.wl-install .seg3 button .ms{font-size:18px}
.popover .seg3 button[aria-pressed="true"],.card .seg3 button[aria-pressed="true"],.wl-install .seg3 button[aria-pressed="true"]{background:var(--primary-c);color:var(--on-primary-c)}
.palettes{display:grid;gap:6px}
.pal{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;min-height:48px;padding:6px 10px;border-radius:var(--r-l);text-align:left;border:1.5px solid transparent}
.pal:hover{background:var(--container)}
.pal[aria-pressed="true"]{border-color:var(--primary);background:var(--container)}
.pal .sw3{display:flex}
.pal .sw3 i{width:20px;height:20px;border-radius:50%;box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--outline)}
.pal .sw3 i+i{margin-left:-6px}
.pal b{display:block;font:800 14px/1.2 var(--body)}
.pal small{display:block;font-size:12px;color:var(--ink-3)}
.pal>.ms{color:var(--primary);visibility:hidden}
.pal[aria-pressed="true"]>.ms{visibility:visible}

.view{padding:0 16px;max-width:780px;margin:0 auto}
/* ZIRPA-APP (Jorge 3-oct, fallo de la barra de abajo): nada de lo que se mueve en horizontal dentro de la vista (una
   tarjeta que se va, la lista al deslizar el día) ensancha la página; en el iPhone eso movía la barra de abajo */
#views{overflow-x:clip}

/* ---------- Barra de navegación inferior (móvil y tableta) ---------- */
.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:40;height:calc(var(--nav-h) + var(--safe-b));padding:0 4px var(--safe-b);background:var(--container);transition:transform .32s var(--ease)}
/* iPhone: if the viewport stops above the home indicator, that strip shows the page canvas (pink --bg) under the grey bar; the canvas takes the bar's colour while the bar is shown (body keeps --bg) */
@media(max-width:899px){html:not(.bars-off):not(.mapfull){background:var(--container)}body{min-height:100vh;min-height:100dvh}}
.bottomnav ul{list-style:none;margin:0 auto;padding:0;height:100%;display:grid;grid-template-columns:repeat(var(--n,5),1fr);max-width:560px}
.navbtn{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding-bottom:4px;color:var(--ink-2);font:600 12px/16px var(--body);letter-spacing:.03em}
/* ZIRPA-APP (Jorge 3-oct, «como la barra de Google Play»): movimiento de la barra de navegación de Material 3, solo con
   transform y opacity. La píldora (.ind) crece desde el centro; el icono de contorno se funde en el relleno (.msf, la
   misma letra de Material Symbols con FILL 1, scripts/v12-fill-icons.py); el nombre normal se funde en el negrita (dos
   capas en el mismo sitio: el ancho no cambia). Al cambiar de pestaña, la píldora además viaja (navSlide, 2-agenda.js) */
@font-face{font-family:"Material Symbols Rounded Fill";src:url(data:font/woff2;base64,d09GMgABAAAAAAQ4AA4AAAAACCwAAAPjAAL5FwAAAAAAAAAAAAAAAAAAAAAAAAAAHCoGYD9TVEFUYgBMEQgKhUyEdQE2AiQDDAsMAAQgBYRyByAMBxvTBlFUUCpBfhw4ZbviOJcnIaO8na4YxC0xV5Oa5PxXzyNUch7+W3u9b2Z2A4AqGrFl2VOhyJJrI0zrAkJXqMgCyW9cAT27/fm87P1CTKftgrWzrqLWIyaVk2tmKZ80WJAoG9tLEqxF8OCY8bJwmCk6pMhbRAJFtA10RB/ZVgbPD/zqxlDtg4R455++JCgpGtZ/RKDTgjEcLlfMIMDnnrTTBGGcoGkAUPL7OFNRsaozciQEWr+vdO0qcTj/8fo7VZlv1lMWNAAB+X1+j3njIaFdwTBHrHIYP/5ghGtfXIZCPOQ6+lGSHqs1nSjLaoNiICFFJ1gLRpfxWJahekZ6DQnyO2zh/Z6TTaBTuyR9bL2o/NbwU9U0tO3nsqMP7Y5ZI6CfJkTT6EOoQCfGgF/EJgAFVIpKVpeswkc8gz3d3DAPi78S453u6+nq6yJrqNc6M4x3PWrwktvtSLCJFuCt1q0hNlVGgt3TbAXekiMWb6YofX++7ZxwVjzNn/l6R7hrvs3fahXPImfhnKcnEnaZd4Aeb88u8xko/GkPk68gIEcfB4k4+qLA4iNEBEjf3F3iuO0BNu8EpiWHIsHZIrwQTgGaoDDedSxFLN4asnQlXbsqlF62zLwkmHT23rJkBRR+eRCxeLG4lHKkHM6II6GwLCntQKjWvn4+6fzTgQPyA8p5N27W8LUFCtmzfp+0FT6c6GO7juJGUbwpbiMenEF/9sSOolx5W4lOIpu49PyBkZHhXjpxaBgNq5lZteOE96yUHHPkS8nNgfCvK4i8LevivsQloX3MGH+VROU/pshzjJm55eTKJOAsaT74mFQFLAI3xjrw4es2nMMnjXddDfOt23V8uD23bd01EqiBM09DDcaV7fHWaSfwRZLOTt4z2fvl5RMF1Rd8LlRj7n/fK7Desi7T8jWzZ/SDnonHbliLxXcf8z3gwWV5WSyW9uMA/wWk/2OPPh/FWnzzfrcnx/MAfH/8Zj/g+5vhBaCOQL7u+B61BIJfUMNr5zG9fQrBuVvWMI5c3wahcpWL/MF6XI9nsigduAUiXljUykt6nfGym9byikPfeJXJkri13abJBO3xlBc644SXjLecl3XHOaIT8/ozurRHyyUsTp92WmoanTApkqTIgMGxWGoGSpgZg1VqEoxRzJDC1GTaOmJQehobadeNZoVJZpLq5GJa0pztavUxkmEZUMzqYqIougaomb9sINUuxSTZMqXKhatUCZf71H4ZJAsmlsnuaBEGG5UNHWCwTOY9Tm9fUJGFMABebdJV3ZU4nbTk++zW6qdEU37zyCxsBhjBMUiRtuRI1YXC5zVPzssx) format("woff2");font-weight:400;font-display:block}
.navbtn .pillw{position:relative;width:64px;height:32px;display:grid;place-items:center;border-radius:16px}
.navbtn .ind{position:absolute;inset:0;border-radius:16px;background:var(--primary-c);transform:scaleX(.2);opacity:0;transition:transform .3s var(--ease-d),opacity .15s linear}
.navbtn .ico{position:relative;z-index:1;display:grid;width:24px;height:24px}
.navbtn .ico>*{grid-area:1/1;transition:opacity .2s var(--ease)}
.navbtn .msf{opacity:0;color:var(--on-primary-c)}
.navbtn span.msf{font-family:"Material Symbols Rounded Fill";font-weight:400;font-style:normal;font-size:24px;line-height:1;width:1em;height:1em;overflow:hidden;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none}
.navbtn .ico>.ms{font-size:24px}
.navbtn .ico>svg{width:24px;height:24px}
.navbtn .lbl{display:grid;justify-items:center}
.navbtn .lbl>*{grid-area:1/1;white-space:nowrap;transition:opacity .2s var(--ease)}
.navbtn .lbl>b{font-weight:800;color:var(--ink);opacity:0}
.navbtn[aria-current="page"] .ind{transform:none;opacity:1}
.navbtn[aria-current="page"] .ico>.ms{opacity:0}
.navbtn[aria-current="page"] .msf{opacity:1}
.navbtn[aria-current="page"] .lbl>span{opacity:0}
.navbtn[aria-current="page"] .lbl>b{opacity:1}
.navbtn:active .ico{transform:scale(.9);transition:transform .1s var(--ease)}
.navbtn .ico{transition:transform .25s var(--spring)}
@media (prefers-reduced-motion:reduce){.navbtn .ind,.navbtn .ico,.navbtn .ico>*,.navbtn .lbl>*{transition:none!important}.navbtn:active .ico{transform:none}}
.badge{position:absolute;top:-3px;left:36px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--primary);color:var(--on-primary);font:800 11px/18px var(--body);text-align:center;z-index:1}
.badge:empty:not(.dot){display:none}
/* Al bajar se esconden las barras; al subir un poco vuelven (como en X) */
html.bars-off .topbar{transform:translateY(-100%)}
html.bars-off .bottomnav{transform:translateY(100%)}
html.bars-off .editbar{top:calc(var(--band) + var(--safe-t))}
html.bars-off .daysec>h2{top:calc(var(--band) + var(--safe-t))}

/* ---------- Cinta de días ---------- */
.ribbon{margin:4px 0 12px;padding:10px 10px 10px;border-radius:var(--r-xl);background:var(--container);overflow:hidden;overflow:clip}
.ribbon-head{display:flex;align-items:center;gap:2px;margin-bottom:6px;flex-wrap:wrap}
.ribbon-head h2{margin:0 auto 0 6px;min-width:0;font:900 16px/1.2 var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}
.ribbon-head .iconbtn{width:40px;height:40px}
.ribbon-head .calbtn{background:var(--surface);color:var(--primary);margin-right:4px}
@media (min-width:600px){.ribbon-head .calbtn{display:none}}
@media (max-width:599px){.selinfo .calwk{display:none}}
.rbtns{display:flex;align-items:center;gap:4px;margin-left:auto}
.wk{position:relative;display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 10px 0 7px;border-radius:var(--r-s);border:1px solid var(--outline);font:800 13px/1 var(--body);color:var(--ink-2);transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.wk .ms{font-size:18px}
.wk[aria-pressed="true"]{background:var(--primary-c);border-color:transparent;color:var(--on-primary-c)}
.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.day{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 0 7px;border-radius:16px;color:var(--ink-2);transition:background .25s,color .25s,transform .25s var(--spring)}
.day:active{transform:scale(.94)}
.day .wd{font:800 11px/1 var(--body);letter-spacing:.06em;text-transform:uppercase}
.day .dn{font:900 21px/1 var(--display);color:var(--ink)}
/* Barras de densidad (de la primera versión): cuántos planes hay ese día */
.day .dots{display:flex;align-items:center;gap:3px;height:6px}
.day .dots i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.2}
.day .dots i.on{opacity:.85}
/* Fiestas del Pilar: el día va coloreado, sin rayas */
.day.fest{background:var(--fest-c);color:var(--on-fest-c)}
.day.fest .dn{color:var(--on-fest-c)}
.day.fest .dots i{background:var(--fest)}
.day[aria-disabled="true"]{opacity:.35;pointer-events:none}
.day.today .dn{color:var(--primary)}
.day[aria-pressed="true"]{background:var(--primary);color:var(--on-primary)}
.day[aria-pressed="true"] .dn,.day[aria-pressed="true"].today .dn{color:var(--on-primary)}
.day[aria-pressed="true"] .dots i{background:var(--on-primary)}
@media (hover:hover){.day:not([aria-pressed="true"],.route):hover{background:color-mix(in oklab,var(--ink) 6%,transparent)}}
.selinfo{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;padding:6px 2px 0;font:700 13px/1.3 var(--body);color:var(--ink-2)}
.selinfo .grow{flex:1}

/* ---------- Calendario de mes ---------- */
.cal-presets{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 14px}
.cal-head{display:flex;align-items:center;gap:4px;margin-bottom:8px}
.cal-head h3{flex:1;margin:0;font:900 20px/1.2 var(--display);text-transform:capitalize}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal .wh{text-align:center;font:800 11px/1 var(--body);letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase;padding:4px 0 6px}
.cd{position:relative;display:grid;justify-items:center;gap:2px;aspect-ratio:1/1.05;padding:6px 0 4px;border-radius:var(--r-m);color:var(--ink);transition:background .15s}
.cd b{font:900 17px/1 var(--display)}
.cd small{font:800 10px/1 var(--body);color:var(--ink-3)}
.cd.fest{background:var(--fest-c);color:var(--on-fest-c)}
.cd.fest small{color:var(--on-fest-c);opacity:.7}
.cd.today b{color:var(--primary)}
.cd.today{box-shadow:inset 0 0 0 1.5px var(--primary)}
.cd[aria-pressed="true"]{background:var(--primary);color:var(--on-primary)}
.cd[aria-pressed="true"] b,.cd[aria-pressed="true"] small{color:var(--on-primary)}
.cd[disabled]{opacity:.28;pointer-events:none}
.cd.blank{visibility:hidden}
@media (hover:hover){.cd:not([aria-pressed="true"]):hover{background:var(--container)}}
.cal-legend{display:flex;flex-wrap:wrap;gap:12px;margin:12px 2px 0;font:700 12px/1.3 var(--body);color:var(--ink-3)}
.cal-legend i{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--fest-c);box-shadow:inset 0 0 0 1.5px color-mix(in oklab,var(--fest) 40%,transparent);vertical-align:-3px;margin-right:6px}

/* ---------- Chips (siempre envuelven, nunca se cortan) ---------- */
.quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
/* Móvil y tablet: los filtros rápidos en una sola fila; si hay más, se desliza de lado */
@media (max-width:1023px){
  .quick.one{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px 16px;padding:2px 16px;scroll-padding:0 16px}
  .quick.one::-webkit-scrollbar{display:none}
  /* ZIRPA-APP (Jorge 3-oct): sin rebote hacia los lados; si caben todos, la fila no se mueve (quickFit, 3-views.js) */
  .quick.one{overscroll-behavior-x:none}
  .quick.one.fits{overflow-x:hidden;touch-action:pan-y}
  .quick.one .chip{flex:none;white-space:nowrap}
}
@media (min-width:900px) and (max-width:1023px){.quick.one{margin:0 -32px 18px;padding:2px 32px;scroll-padding:0 32px}}
/* Filtros compactos: chips bajos y de letra más pequeña en la fila deslizable */
@media (max-width:1023px){.quick.one{gap:6px}.quick.one .chip{min-height:32px;padding:4px 12px;gap:6px;font-size:13.5px}.quick.one .chip .ms{font-size:17px}.quick.one .chip small{font-size:11.5px}}
@media (max-width:399px){.quick.one .chip{padding:4px 10px}}
/* ZIRPA-APP (Jorge 3-oct, 22:22, «que no se muevan con el dedo»): la fila de la agenda (Afinar, Para ti, Con peques y, en el
   modo edición, «Editando») no se desliza nunca: sin scroll de lado, sin arrastre y el dedo solo mueve la página hacia abajo.
   Para que quepa a 360 px, chips algo más pequeños; si se añaden filtros (el público, «Solo fiestas»…), bajan a otra línea */
@media (max-width:1023px){
  .quick.one.fixed{flex-wrap:wrap;overflow:visible;touch-action:pan-y;overscroll-behavior:auto;margin:0 0 16px;padding:2px 0;row-gap:8px}
  .quick.one.fixed .chip{flex:none}
}
@media (max-width:899px){.quick.one.fixed{gap:6px}.quick.one.fixed .chip{padding:4px 11px;gap:5px;font-size:13px}.quick.one.fixed .chip .ms{font-size:16px}}
@media (max-width:399px){.quick.one.fixed{gap:5px}.quick.one.fixed .chip{padding:4px 8px;gap:4px;font-size:12.5px}.quick.one.fixed .chip .ms{margin-left:-2px}}
/* Muy estrecho (360 px): «Editando» se queda en el lápiz azul, para que los cuatro quepan en una línea */
@media (max-width:379px){.quick.one.fixed .chip.edit{padding:4px 9px}.quick.one.fixed .chip.edit .ms{margin:0}.quick.one.fixed .chip.edit .lbl{display:none}}
.chip{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:5px 14px;border-radius:var(--r-s);border:1px solid var(--outline);background:transparent;font:700 14px/1.2 var(--body);color:var(--ink-2);transition:background .2s,border-color .2s,color .2s;text-align:left}
.chip .ms{font-size:18px;margin-left:-4px}
@media (pointer:coarse){.chip{min-height:36px}}
@media (hover:hover){.chip:hover{background:color-mix(in oklab,var(--ink) 6%,transparent)}}
.chip[aria-pressed="true"]{background:var(--primary-c);border-color:transparent;color:var(--on-primary-c)}
.chip.token{background:var(--gt,var(--container));border-color:transparent;color:var(--ink)}
.chip.token .ms:first-child{color:var(--g)}
.chip.kc{border-color:transparent;background:var(--gt);color:var(--ink)}
.chip.kc .ms{color:var(--g)}
.chip.kc[aria-pressed="true"]{background:var(--g);color:var(--surface)}
.chip.kc[aria-pressed="true"] .ms{color:var(--surface)}
.chip .n{font:800 12px/1 var(--body);padding:3px 7px;border-radius:6px;background:var(--primary);color:var(--on-primary)}
.chip small{font:700 12px/1 var(--body)}
.chip.more{border-style:dashed}

/* ---------- Cabecera del día ---------- */
.dayhead{margin:4px 0 14px}
.dayhead .eyebrow{font:900 12px/1 var(--body);color:var(--primary);text-transform:uppercase;letter-spacing:.14em}
.dayhead :is(h1,.h1){margin:6px 0 0;font:1000 42px/1 var(--display);letter-spacing:-.03em;text-wrap:balance}
.dayhead :is(h1,.h1) span{font-weight:500;color:var(--ink-2)}
.dayhead p{margin:6px 0 0;color:var(--ink-2)}

/* ---------- Franjas ---------- */
.slot{margin:22px 0 8px;display:flex;align-items:center;gap:10px;color:var(--ink-2)}
.slot>.ms{font-size:20px;color:var(--primary)}
.slot :is(h2,h3,h4){margin:0;font:900 12px/1 var(--body);text-transform:uppercase;letter-spacing:.14em;white-space:nowrap}
.slot small{font:800 12px/1 var(--body);color:var(--ink-3);padding:4px 8px;border-radius:8px;background:var(--container)}
.daysec{scroll-margin-top:80px}
.daysec>h2{position:sticky;top:calc(var(--top-h) + var(--safe-t) + var(--band));z-index:5;margin:22px -16px 0;padding:10px 16px;background:var(--bg);font:900 20px/1.1 var(--display);display:flex;align-items:baseline;gap:10px;transition:top .32s var(--ease)}
.daysec>h2 small{font:600 13px/1 var(--body);color:var(--ink-3)}
.daysec .moreday{display:flex;justify-content:center;margin:6px 0 0}

/* ---------- Tarjeta de plan ---------- */
.ev{position:relative;display:grid;grid-template-columns:52px 1fr;gap:0 10px}
html.anim .ev{animation:rise .5s var(--ease-d) both;animation-delay:calc(min(var(--i,0),10) * 28ms)}
.ev-time{position:relative;padding-top:16px;text-align:right}
.ev-time b{display:block;font:900 17px/1 var(--display);font-variant-numeric:tabular-nums}
.ev-time span{display:block;margin-top:4px;font:700 12px/1 var(--body);color:var(--ink-3);font-variant-numeric:tabular-nums}
.ev-time span::before{content:"→ "}
.ev-time em{font:800 11px/1.25 var(--body);font-style:normal;color:var(--ink-3)}
.ev-time .night-date{display:block;margin-top:5px;font:700 11px/1.25 var(--body);color:var(--ink-3);overflow-wrap:anywhere}
/* Hilo de la agenda: una línea fina y un punto con el color del tipo */
.ev::before{content:"";position:absolute;left:62px;top:0;bottom:0;width:2px;border-radius:1px;background:var(--outline-soft)}
.ev-dot{position:absolute;left:57px;top:19px;width:12px;height:12px;border-radius:50%;background:var(--g);box-shadow:0 0 0 3px var(--bg);transition:transform .3s var(--spring)}
@media (hover:hover){.ev:hover .ev-dot{transform:scale(1.3)}}
.ev-body{position:relative;margin:6px 0 6px 12px;min-width:0}
.ev-card{position:relative;display:block;width:100%;text-align:left;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-1);overflow:hidden;transition:box-shadow .25s,background .2s,transform .2s var(--ease)}
@media (hover:hover){.ev-card:hover{box-shadow:var(--shadow-2)}}
/* En el móvil la tarjeta lleva la raya de su color: los resaltados la conservan */
@media (max-width:599px){@media (hover:hover){.ev-card:hover{box-shadow:var(--shadow-2),inset 4px 0 0 var(--g)}}.ev-card.saved-flash{box-shadow:0 0 0 2px var(--g),var(--shadow-2),inset 4px 0 0 var(--g)}.ev.hl .ev-card{box-shadow:0 0 0 2px var(--g),var(--shadow-2),inset 4px 0 0 var(--g)}}
.ev-card:active,.ev-card.pressing{transform:scale(.975)}
/* ZIRPA-APP (Jorge 5-oct): al pulsar y al mantener, la tarjeta se tiñe del color de su categoría, no siempre del mismo */
.ev-card.pressing{transition:transform .6s var(--ease),background .6s var(--ease);background:color-mix(in oklab,var(--g) 24%,var(--surface))}
.ev-card .rpl{background:var(--g);opacity:.2}
.ev-card.saved-flash{box-shadow:0 0 0 2px var(--g),var(--shadow-2)}
.ev-card{-webkit-touch-callout:none}
.ev.hl .ev-card{box-shadow:0 0 0 2px var(--g),var(--shadow-2)}
/* ZIRPA-APP (Jorge 6-oct): en el móvil, al guardar o resaltar se conserva la raya de color de la izquierda (la regla de arriba la tapaba) */
@media (max-width:599px){.ev-card.saved-flash,.ev.hl .ev-card{box-shadow:0 0 0 2px var(--g),var(--shadow-2),inset 4px 0 0 var(--g)}}
.ev-card .in{display:flex;gap:12px;padding:14px 14px 14px 14px}
.ev-card .txt{display:grid;gap:6px;min-width:0;flex:1}
.ev-card .tmcol{display:none}
.kchip{justify-self:start;display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 6px;border-radius:8px;background:var(--gt);color:var(--g);font:800 12px/1.3 var(--body)}
.kchip .ms{font-size:16px}
.ev-title{font:800 17px/1.25 var(--display);color:var(--ink);text-wrap:pretty;overflow-wrap:break-word;hyphens:auto}
.ev-place{display:flex;gap:4px;align-items:flex-start;font:600 14px/1.35 var(--body);color:var(--ink-2);min-width:0}
.ev-place .ms{font-size:17px;margin-top:1px;color:var(--ink-3)}
.ev-place span:not(.ms){min-width:0;overflow-wrap:anywhere}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tags:empty{display:none}
.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;background:var(--container);font:700 12px/1.4 var(--body);color:var(--ink-2)}
.tag.free{background:var(--good-c);color:var(--good)}
.tag.live{background:var(--primary-c);color:var(--on-primary-c)}
.tag.live::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse 1.6s ease-in-out infinite}
.tag.fest{background:var(--fest-c);color:var(--on-fest-c)}
.tag.edited{background:var(--azul);color:#fff}
.save,.editbtn{position:absolute;right:2px;top:2px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--ink-3);transition:color .2s,background .2s}
.editbtn{top:auto;bottom:4px;right:4px;color:var(--azul);background:color-mix(in oklab,var(--azul) 12%,transparent)}
/* El guardar va arriba a la derecha, a la altura del tipo de plan: siempre a la vista y fácil de quitar */
.ev-card .head{padding-right:56px}
.ev-body>.save{right:10px}
.ev-body:has(.banner)>.save{top:8px;right:8px;width:40px;height:40px;background:var(--surface);box-shadow:var(--shadow-1)}
.ev.leaving{animation:leave .26s var(--ease-a) forwards;pointer-events:none}
@keyframes leave{to{opacity:0;transform:translateX(28px)}}
.save{color:var(--g,var(--primary))}
.save .bm{width:24px;height:24px;display:block}
@media (hover:hover){.save:hover{color:var(--g,var(--primary));background:var(--gt,var(--container))}}
.save[aria-pressed="true"]{color:var(--g,var(--primary))}
.save.pop .bm{animation:pop .45s var(--spring)}

/* Móvil estrecho: la hora va a la izquierda dentro de la tarjeta, grande; el guardar, debajo de la hora */
@media (max-width:599px){
  .ev{grid-template-columns:1fr}
  .ev::before,.ev-dot,.ev-time{display:none}
  .ev-body{margin:5px 0}
  .ev-card{box-shadow:var(--shadow-1),inset 4px 0 0 var(--g)}
  .ev-card .in{gap:12px;padding:14px 14px 14px 16px}
  .ev-card .tmcol{display:flex;flex-direction:column;align-items:flex-start;gap:5px;flex:none;width:56px;padding-right:10px;border-right:1px solid var(--outline-soft);font-variant-numeric:tabular-nums}
  .ev-card .tmcol b{font:900 20px/1 var(--display);letter-spacing:-.02em;color:var(--ink)}
  .ev-card .tmcol small{font:700 12px/1.25 var(--body);color:var(--ink-3);max-width:100%;overflow-wrap:anywhere}
  .ev.night .tmcol{width:80px}
  .ev-card .tmcol em{font:800 13px/1.15 var(--display);font-style:normal;color:var(--ink-2)}
  .ev-body:has(.editbtn) .ev-card .tags{padding-right:46px}
}
.ev-card .head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
}
.ev-card .head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}

/* Imágenes: nunca se recortan. Horizontal arriba a todo el ancho; vertical o cuadrada al lado. */
.banner{position:relative;display:block;background:var(--container)}
.banner img{display:block;width:100%;height:auto}
.thumb{position:relative;flex:none;width:clamp(60px,18vw,78px);align-self:flex-start;border-radius:var(--r-m);overflow:hidden;background:var(--container)}
.thumb img{display:block;width:100%;height:auto}

/* ---------- Estantes ---------- */
.shelf{margin:30px 0 8px}
.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:10px;margin-top:12px}
.opentile{position:relative;display:grid;gap:4px;align-content:start;text-align:left;padding:14px;background:var(--surface);border-radius:var(--r-m);box-shadow:var(--shadow-1);transition:box-shadow .25s}
@media (hover:hover){.opentile:hover{box-shadow:var(--shadow-2)}}
.opentile b{font:800 15px/1.25 var(--display);overflow-wrap:anywhere}
.opentile span:not(.ms){font:500 13px/1.35 var(--body);color:var(--ink-2);overflow-wrap:anywhere}
.opentile .hrs{display:flex;align-items:center;gap:4px;font:800 12px/1.3 var(--body);color:var(--g);font-variant-numeric:tabular-nums}
.opentile .hrs .ms{font-size:15px}
/* ZIRPA-APP (Jorge 5-oct, opción B): «También abierto por la mañana / por la tarde», una tira que se desliza de lado */
.openstrip{margin:14px 0 22px}
.striphead{display:flex;align-items:center;gap:8px;font:800 14px/1.25 var(--display);color:var(--ink)}
.striphead .ms{font-size:20px;color:var(--k-museo)}
.striphead small{margin-left:auto;font:600 12px var(--body);color:var(--ink-3)}
.strip{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:16px;margin:8px -16px 0;padding:2px 16px 8px;scrollbar-width:none}
.strip::-webkit-scrollbar{display:none}
.strip .opentile{flex:0 0 205px;padding:12px;scroll-snap-align:start}
.strip .opentile b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (min-width:900px){.strip{margin:8px 0 0;padding:2px 0 8px;scroll-padding-inline:0}}
.more{display:flex;justify-content:center;margin-top:12px}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 24px;border-radius:999px;font:700 14px/1.2 var(--body);letter-spacing:.01em;border:1px solid var(--outline);background:transparent;color:var(--primary);transition:background .2s,box-shadow .2s;text-decoration:none;text-align:center}
.btn .ms{font-size:20px;margin-left:-6px}
@media (hover:hover){.btn:hover{background:color-mix(in oklab,var(--primary) 8%,transparent)}}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.btn.tonal{background:var(--primary-c);border-color:transparent;color:var(--on-primary-c)}
.btn.text{border-color:transparent;padding:10px 12px}
.btn.small{min-height:32px;padding:4px 14px;font-size:13px}
.btn[disabled]{opacity:.45;pointer-events:none}

/* ---------- Fiestas del Pilar ---------- */
.fiesta{position:relative;overflow:hidden;margin:0 0 18px;border-radius:var(--r-xl);background:var(--fest-c);color:var(--on-fest-c)}
.fiesta .body{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:18px 18px 18px}
.fiesta .eyebrow{font:900 11px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;opacity:.8}
.fiesta :is(h2,h3){margin:0;font:1000 clamp(22px,5.6vw,28px)/1.08 var(--display);letter-spacing:-.02em;text-wrap:balance}
.fiesta p{margin:2px 0 8px;font-size:14px;opacity:.9}
/* Cuenta atrás al estilo Material 3: números grandes en fichas tonales, emblema con forma de galleta y barra ondulada */
.count{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 12px}
.count div{display:grid;justify-items:center;gap:4px;min-width:72px;padding:12px 10px 10px;border-radius:var(--r-l);background:color-mix(in oklab,var(--surface) 70%,transparent)}
.count b{font:1000 34px/1 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.count span{font:800 12px/1.2 var(--body);opacity:.85}
.fhead{display:flex;align-items:center;gap:14px}
.fhead>div{display:grid;gap:4px;min-width:0}
.emblem{position:relative;flex:none;width:56px;height:56px;display:grid;place-items:center}
.emblem svg:not(.msvg){position:absolute;inset:0;width:100%;height:100%;fill:var(--fest);animation:spin 24s linear infinite}
.emblem .ms{position:relative;font-size:28px;color:var(--fest-c)}
.emblem svg.msvg{width:28px;height:28px}
@keyframes spin{to{transform:rotate(1turn)}}
.wave{display:grid;gap:6px;margin:0 0 14px}
.wave svg{display:block;width:100%;height:16px;overflow:visible}
.wave .wv{fill:none;stroke:var(--fest);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.wave line{stroke:color-mix(in oklab,var(--fest) 22%,transparent);stroke-width:4.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.wave circle{fill:var(--fest)}
.wave span{font:800 13px/1.3 var(--body)}
.pilar-hero .fhead{gap:12px;margin-bottom:6px}
.cachibtn{margin:0 0 6px;border-color:color-mix(in oklab,var(--on-fest-c) 35%,transparent);color:var(--on-fest-c)}
.cachibtn[aria-pressed="true"]{background:var(--fest);color:var(--fest-c)}
/* Tema cachirulo: el cuadro rojo y negro */
html[data-palette="cachirulo"]{--cachi:linear-gradient(90deg,rgba(26,11,14,.6) 50%,transparent 50%) 0 0/10px 10px,linear-gradient(rgba(26,11,14,.6) 50%,transparent 50%) 0 0/10px 10px,#C8102E}
/* Franja de cachirulo: más ancha y fija; si las barras se esconden al bajar, se queda arriba del todo */
:root{--band:0px}
html[data-palette="cachirulo"]{--band:14px}
/* La franja va colgada de la barra de arriba: se mueve con ella (también en el rebote del iPhone/iPad) y, al esconderse la barra, queda arriba del todo */
/* Banda de pañuelo: fila de triángulos con la punta hacia abajo, como el cachirulo anudado */
html[data-palette="cachirulo"] .topbar::after{content:"";position:absolute;left:0;right:0;top:100%;height:calc(var(--band) + 2px);pointer-events:none;
  background:linear-gradient(90deg,rgba(26,11,14,.6) 50%,transparent 50%) 0 0/8px 8px,linear-gradient(rgba(26,11,14,.6) 50%,transparent 50%) 0 0/8px 8px,#C8102E;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16'%3E%3Cpath d='M0 0H24L12 14Z'/%3E%3C/svg%3E") center bottom/24px 16px round no-repeat,linear-gradient(#000,#000) left top/100% calc(100% - 15px) no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 16'%3E%3Cpath d='M0 0H24L12 14Z'/%3E%3C/svg%3E") center bottom/24px 16px round no-repeat,linear-gradient(#000,#000) left top/100% calc(100% - 15px) no-repeat}
/* Con la barra escondida, el hueco de la hora del móvil va liso y el pañuelo conserva su alto de siempre debajo */
html[data-palette="cachirulo"].bars-off .topbar::after{height:calc(var(--band) + 2px + var(--safe-t));
  background:linear-gradient(var(--bg),var(--bg)) 0 0/100% var(--safe-t) no-repeat,linear-gradient(90deg,rgba(26,11,14,.6) 50%,transparent 50%) 0 0/8px 8px,linear-gradient(rgba(26,11,14,.6) 50%,transparent 50%) 0 0/8px 8px,#C8102E}
/* La banda tiene su sitio: el contenido empieza debajo y no queda tapado */
html[data-palette="cachirulo"] #views>.view:not(.mapview){border-top:var(--band) solid transparent}
html.mapfull .topbar::after{display:none}
/* Jorge 20-oct: con la barra escondida, el hueco de la hora del móvil (zona segura) dejaba ver pasar las tarjetas por encima de la cabecera del día. Se rellena del color del tema; el pañuelo de cachirulo ya lo hace arriba. */
html.bars-off:not(.mapfull):not([data-palette="cachirulo"]) .topbar::after{content:"";position:absolute;left:0;right:0;top:100%;height:var(--safe-t);background:var(--bg);pointer-events:none}
html[data-palette="cachirulo"] .mapbar{padding-top:calc(12px + var(--band))}
html[data-palette="cachirulo"] .pilar-hero,html[data-palette="cachirulo"] .fiesta{box-shadow:inset 0 0 0 1.5px color-mix(in oklab,var(--fest) 25%,transparent)}
/* Tema calabaza (Halloween, Jorge 18-oct): solo en oscuro (applyTheme, 2-agenda.js) y sin banderines. El logo se pone de
   Halloween: el rombo es una calabaza encendida, sin «Zaragoza se vive»; la palabra chorrea, el punto de la «ı» es una calavera
   mini y la «a», una calabaza con cara, del mismo color, tamaño y brillo que las demás letras (Jorge 19-oct) */
html[data-palette="calabaza"] .mark{--brand-2:#2A1206;--mark-z:#FFE6D4;filter:drop-shadow(0 0 6px rgba(255,138,61,.55))}
/* Jorge 20-oct: sin el lema la palabra quedaba baja y pequeña, y la barra (pestañas y buscador) se movía. El lema se esconde pero
   guarda su ancho (alto cero), así que todo queda donde con los demás temas, y la palabra es algo más grande y va centrada */
/* Jorge 21-oct: el logo de la calabaza lleva ahora el lema «Zaragoza terrorífica», como Truco o trato (más abajo): misma letra, tamaño de siempre */
html[data-palette="calabaza"] .logo small{color:#FFE6D4}
/* Jorge 28-oct: la palabra, del mismo tamaño que en Truco o trato (la de los demás temas): sin tamaño propio */
html[data-palette="calabaza"] .logo b{justify-self:start} /* las gotas solo bajo la palabra, no en el hueco del lema */
html[data-palette="calabaza"] :is(.logo,.wl-brand) b{position:relative;text-shadow:0 0 10px rgba(255,138,61,.45)}
html[data-palette="calabaza"] :is(.logo,.wl-brand) b::after{content:"";position:absolute;left:0;right:0;top:.7em;height:.5em;background:var(--brand);pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cpath d='M2.99 0Q4.67 6.86 4.67 12.48A2.52 2.52 0 1 0 7.31 12.48Q7.31 6.86 8.99 0ZM15.46 0Q16.86 3.8 16.86 6.9A2.1 2.1 0 1 0 19.06 6.9Q19.06 3.8 20.46 0ZM27.93 0Q29.05 2.38 29.05 4.32A1.68 1.68 0 1 0 30.81 4.32Q30.81 2.38 31.93 0ZM39.89 0Q41.29 6 41.29 10.9A2.1 2.1 0 1 0 43.49 10.9Q43.49 6 44.89 0ZM74.31 0Q75.99 4.11 75.99 7.48A2.52 2.52 0 1 0 78.63 7.48Q78.63 4.11 80.31 0ZM101.99 0Q103.81 8.95 103.81 16.27A2.73 2.73 0 1 0 106.67 16.27Q106.67 8.95 108.49 0ZM95.51 0Q96.77 3.36 96.77 6.11A1.89 1.89 0 1 0 98.75 6.11Q98.75 3.36 100.01 0Z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cpath d='M2.99 0Q4.67 6.86 4.67 12.48A2.52 2.52 0 1 0 7.31 12.48Q7.31 6.86 8.99 0ZM15.46 0Q16.86 3.8 16.86 6.9A2.1 2.1 0 1 0 19.06 6.9Q19.06 3.8 20.46 0ZM27.93 0Q29.05 2.38 29.05 4.32A1.68 1.68 0 1 0 30.81 4.32Q30.81 2.38 31.93 0ZM39.89 0Q41.29 6 41.29 10.9A2.1 2.1 0 1 0 43.49 10.9Q43.49 6 44.89 0ZM74.31 0Q75.99 4.11 75.99 7.48A2.52 2.52 0 1 0 78.63 7.48Q78.63 4.11 80.31 0ZM101.99 0Q103.81 8.95 103.81 16.27A2.73 2.73 0 1 0 106.67 16.27Q106.67 8.95 108.49 0ZM95.51 0Q96.77 3.36 96.77 6.11A1.89 1.89 0 1 0 98.75 6.11Q98.75 3.36 100.01 0Z'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat}
html[data-palette="calabaza"] :is(.logo,.wl-brand) b .i::after{top:-.27em;width:.3em;height:.3em;border-radius:0;background:#F3EAF4;transform:translateX(-50%);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 1.5C5.6 1.5 2.5 4.6 2.5 8.6c0 2.4 1.1 4.2 2.8 5.3v2.6c0 .9.7 1.5 1.5 1.5h6.4c.8 0 1.5-.6 1.5-1.5v-2.6c1.7-1.1 2.8-2.9 2.8-5.3 0-4-3.1-7.1-7.5-7.1ZM4.9 9.3a2.1 2.1 0 1 0 4.2 0 2.1 2.1 0 1 0-4.2 0ZM10.9 9.3a2.1 2.1 0 1 0 4.2 0 2.1 2.1 0 1 0-4.2 0ZM10 11.6 9 13.4H11ZM8.3 15.4H9.2V18H8.3ZM10.8 15.4H11.7V18H10.8Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M10 1.5C5.6 1.5 2.5 4.6 2.5 8.6c0 2.4 1.1 4.2 2.8 5.3v2.6c0 .9.7 1.5 1.5 1.5h6.4c.8 0 1.5-.6 1.5-1.5v-2.6c1.7-1.1 2.8-2.9 2.8-5.3 0-4-3.1-7.1-7.5-7.1ZM4.9 9.3a2.1 2.1 0 1 0 4.2 0 2.1 2.1 0 1 0-4.2 0ZM10.9 9.3a2.1 2.1 0 1 0 4.2 0 2.1 2.1 0 1 0-4.2 0ZM10 11.6 9 13.4H11ZM8.3 15.4H9.2V18H8.3ZM10.8 15.4H11.7V18H10.8Z'/%3E%3C/svg%3E") center/contain no-repeat}
.temanote{margin:-6px 0 14px;font:600 13px/1.35 var(--body);color:var(--ink-3)}
html[data-palette="calabaza"] .pilar-hero,html[data-palette="calabaza"] .fiesta{box-shadow:inset 0 0 0 1.5px color-mix(in oklab,var(--fest) 25%,transparent)}
/* ---------- Tema «Truco o trato» (Halloween, Jorge 19-oct) ---------- */
/* «Truco o trato»: lámina antigua, plana. Rayitas onduladas y destellos de fondo, títulos en mayúsculas, rombo en la «ı»
   del logo con el lema «Zaragoza terrorífica» y la tarjeta de Halloween negra con borde crema. Sin más bordes (Jorge
   19-oct noche): ni marco alrededor de la pantalla ni filetes en las tarjetas. */
/* Jorge 26-oct: Guardar, Compartir, Calendario, Web oficial e Ir salían en rojo y rosa en la calabaza: ahora, naranja y melocotón de su paleta */
html[data-palette="calabaza"]{--guardar:#B8530E;--on-guardar:#FFF;--claro:#FFDCC4;--on-claro:#361200}
html[data-palette="truco"]{--guardar:#E07B2A;--on-guardar:#16130E;--claro:#F0DDB6;--on-claro:#16130E}
html[data-palette="truco"]{--tr-waves:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='180'%3E%3Cg fill='none' stroke='%2316130E' stroke-opacity='0.11' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 24q6-3.5 12 0t12 0'/%3E%3Cpath d='M70 14q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M150 40q6-3.5 12 0t12 0'/%3E%3Cpath d='M28 78q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M118 92q6-3.5 12 0t12 0'/%3E%3Cpath d='M178 112q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M8 138q6-3.5 12 0t12 0'/%3E%3Cpath d='M84 152q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M160 170q6-3.5 12 0t12 0'/%3E%3C/g%3E%3Cg fill='%2316130E' fill-opacity='0.2'%3E%3Cpath d='M196 16Q196 22 202 22Q196 22 196 28Q196 22 190 22Q196 22 196 16Z'/%3E%3Cpath d='M92 54Q92 58 96 58Q92 58 92 62Q92 58 88 58Q92 58 92 54Z'/%3E%3Cpath d='M46 111Q46 116 51 116Q46 116 46 121Q46 116 41 116Q46 116 46 111Z'/%3E%3Cpath d='M150 128.5Q150 132 153.5 132Q150 132 150 135.5Q150 132 146.5 132Q150 132 150 128.5Z'/%3E%3C/g%3E%3C/svg%3E")}
html[data-palette="truco"][data-theme="dark"]{--tr-waves:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='180'%3E%3Cg fill='none' stroke='%23F0DDB6' stroke-opacity='0.09' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 24q6-3.5 12 0t12 0'/%3E%3Cpath d='M70 14q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M150 40q6-3.5 12 0t12 0'/%3E%3Cpath d='M28 78q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M118 92q6-3.5 12 0t12 0'/%3E%3Cpath d='M178 112q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M8 138q6-3.5 12 0t12 0'/%3E%3Cpath d='M84 152q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M160 170q6-3.5 12 0t12 0'/%3E%3C/g%3E%3Cg fill='%23F0DDB6' fill-opacity='0.18'%3E%3Cpath d='M196 16Q196 22 202 22Q196 22 196 28Q196 22 190 22Q196 22 196 16Z'/%3E%3Cpath d='M92 54Q92 58 96 58Q92 58 92 62Q92 58 88 58Q92 58 92 54Z'/%3E%3Cpath d='M46 111Q46 116 51 116Q46 116 46 121Q46 116 41 116Q46 116 46 111Z'/%3E%3Cpath d='M150 128.5Q150 132 153.5 132Q150 132 150 135.5Q150 132 146.5 132Q150 132 150 128.5Z'/%3E%3C/g%3E%3C/svg%3E")}
@media (prefers-color-scheme:dark){html[data-palette="truco"]:not([data-theme]){--tr-waves:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='180'%3E%3Cg fill='none' stroke='%23F0DDB6' stroke-opacity='0.09' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 24q6-3.5 12 0t12 0'/%3E%3Cpath d='M70 14q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M150 40q6-3.5 12 0t12 0'/%3E%3Cpath d='M28 78q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M118 92q6-3.5 12 0t12 0'/%3E%3Cpath d='M178 112q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M8 138q6-3.5 12 0t12 0'/%3E%3Cpath d='M84 152q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M160 170q6-3.5 12 0t12 0'/%3E%3C/g%3E%3Cg fill='%23F0DDB6' fill-opacity='0.18'%3E%3Cpath d='M196 16Q196 22 202 22Q196 22 196 28Q196 22 190 22Q196 22 196 16Z'/%3E%3Cpath d='M92 54Q92 58 96 58Q92 58 92 62Q92 58 88 58Q92 58 92 54Z'/%3E%3Cpath d='M46 111Q46 116 51 116Q46 116 46 121Q46 116 41 116Q46 116 46 111Z'/%3E%3Cpath d='M150 128.5Q150 132 153.5 132Q150 132 150 135.5Q150 132 146.5 132Q150 132 150 128.5Z'/%3E%3C/g%3E%3C/svg%3E")}}
html[data-palette="truco"] body{background:var(--tr-waves) 0 0/220px 180px,var(--bg)}
html:is([data-palette="calabaza"],[data-palette="truco"]) :is(.logo,.wl-brand) b{text-transform:uppercase;letter-spacing:0}
html[data-palette="truco"] :is(.logo,.wl-brand) b .i::after{top:-.17em;width:.2em;height:.2em;border-radius:2px;background:var(--brand-2);transform:translateX(-50%) rotate(45deg)}
html[data-palette="truco"] .logo small{color:var(--brand-2)}
/* Jorge 21-oct: «ZIRPA» y «Zaragoza terrorífica» con la letra de HALLOWEEN (Rubik Wet Paint) y del mismo tamaño que en el tema normal. El lema, más largo que
   «Zaragoza se vive», se sale unos píxeles por la derecha (hay hueco hasta los iconos) pero su caja guarda el ancho de siempre, así el buscador, las
   pestañas y los iconos de arriba no se mueven entre temas. En los móviles más estrechos, donde no hay hueco, se aprieta con el espaciado. */
html:is([data-palette="calabaza"],[data-palette="truco"]) .logo small{overflow:visible;width:100px;font-size:0}
html:is([data-palette="calabaza"],[data-palette="truco"]) .logo small::after{content:"Zaragoza terrorífica";font:400 8.5px/1 "Rubik Wet Paint",var(--body);letter-spacing:0;word-spacing:.3em;text-transform:uppercase}
@media (max-width:419px){html:is([data-palette="calabaza"],[data-palette="truco"]) .logo small::after{letter-spacing:-.03em}}
@media (max-width:359px){html:is([data-palette="calabaza"],[data-palette="truco"]) .logo small::after{letter-spacing:-.07em}}
@media (min-width:420px){html:is([data-palette="calabaza"],[data-palette="truco"]) .logo small{width:118px}html:is([data-palette="calabaza"],[data-palette="truco"]) .logo small::after{font-size:9.5px}}
@media (min-width:900px){html:is([data-palette="calabaza"],[data-palette="truco"]) .logo small{width:130px}html:is([data-palette="calabaza"],[data-palette="truco"]) .logo small::after{font-size:10.5px}}
html:is([data-palette="calabaza"],[data-palette="truco"]) :is(.ribbon-head h2,.dayhead :is(h1,.h1),.daysec>h2,.fiesta :is(h1,h2,h3),.pilar-hero h1,.empty :is(h2,h3),.pagehead h1,.next h2,.group>:is(h2,h3),.sheet h2.plain,.hero h2,.wl-page h2,.slot :is(h2,h3,h4)){text-transform:uppercase;letter-spacing:0}
html:is([data-palette="calabaza"],[data-palette="truco"]) .dayhead :is(h1,.h1){font-size:38px}
html[data-palette="truco"] .slot :is(h2,h3,h4){font:1000 13px/1 var(--display);letter-spacing:.12em;color:var(--ink)}
html[data-palette="truco"] .cenefa{height:8px;background:var(--brand-2);opacity:.75;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 8'%3E%3Cpath d='M0 4q6-4 12 0t12 0' fill='none' stroke='%23000' stroke-width='2.2'/%3E%3C/svg%3E") 0 50%/24px 8px repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 8'%3E%3Cpath d='M0 4q6-4 12 0t12 0' fill='none' stroke='%23000' stroke-width='2.2'/%3E%3C/svg%3E") 0 50%/24px 8px repeat-x}
html[data-palette="truco"] :is(.hwcard,.hwhero){color-scheme:dark;--fest:#E8873A;--fest-c:#16130E;--on-fest-c:#F0DDB6;--surface:#16130E;--container:#25211A;--ink:#F0DDB6;--ink-2:#D9C59E;--ink-3:#B39F7E;--outline:#5F5543;--outline-soft:#393326;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='180'%3E%3Cg fill='none' stroke='%23F0DDB6' stroke-opacity='0.16' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 24q6-3.5 12 0t12 0'/%3E%3Cpath d='M70 14q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M150 40q6-3.5 12 0t12 0'/%3E%3Cpath d='M28 78q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M118 92q6-3.5 12 0t12 0'/%3E%3Cpath d='M178 112q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M8 138q6-3.5 12 0t12 0'/%3E%3Cpath d='M84 152q6-3.5 12 0t12 0t12 0'/%3E%3Cpath d='M160 170q6-3.5 12 0t12 0'/%3E%3C/g%3E%3Cg fill='%23F0DDB6' fill-opacity='0.32'%3E%3Cpath d='M196 16Q196 22 202 22Q196 22 196 28Q196 22 190 22Q196 22 196 16Z'/%3E%3Cpath d='M92 54Q92 58 96 58Q92 58 92 62Q92 58 88 58Q92 58 92 54Z'/%3E%3Cpath d='M46 111Q46 116 51 116Q46 116 46 121Q46 116 41 116Q46 116 46 111Z'/%3E%3Cpath d='M150 128.5Q150 132 153.5 132Q150 132 150 135.5Q150 132 146.5 132Q150 132 150 128.5Z'/%3E%3C/g%3E%3C/svg%3E") 0 0/220px 180px,#16130E;box-shadow:inset 0 0 0 8px #EAD3A2}
html[data-palette="truco"] :is(.hwcard,.hwhero) .hwweb{display:none}
html[data-palette="truco"] :is(.hwcard,.hwhero) :is(h1,h2){font-size:clamp(26px,7vw,34px);line-height:1.04}
html[data-palette="truco"] :is(.hwcard,.hwhero) .eyebrow{color:#E8873A;opacity:1}
html[data-palette="truco"] :is(.hwcard,.hwhero) .count div{background:#2A251C}
html[data-palette="truco"] :is(.hwcard,.hwhero) .hw-art .bat{fill:#8C8160}
html[data-palette="truco"] :is(.hwcard,.hwhero) .hw-art .pumpkin ellipse{fill:#E07B2A;stroke:none}
html[data-palette="truco"] :is(.hwcard,.hwhero) .hw-art .pumpkin .face{fill:#16130E}
html[data-palette="truco"] :is(.hwcard,.hwhero) .hw-art .stem{fill:#B85E1E}
html[data-palette="truco"] :is(.hwcard,.hwhero) .hw-art .moon{fill:#E07B2A}
/* fin de los temas Grito y Truco o trato */
/* Letra de Halloween (Jorge 21-oct, opción 5: Rubik Wet Paint, OFL, /fonts/rubik-wet-paint-latin.woff2; solo se descarga con
   estos temas). Solo en el logo de la calabaza y en los títulos grandes de Halloween: el texto de los planes no cambia */
@font-face{font-family:"Rubik Wet Paint";src:url(/fonts/rubik-wet-paint-latin.woff2) format("woff2");font-weight:400;font-display:swap}
html:is([data-palette="calabaza"],[data-palette="truco"]) :is(.hwhero h1,.hwcard .fh,#v-halloween .slot :is(h2,h3)){font-family:"Rubik Wet Paint",var(--display);font-weight:400;letter-spacing:0}
html:is([data-palette="calabaza"],[data-palette="truco"]) #v-halloween .slot :is(h2,h3){font-size:15px;letter-spacing:.06em}
html:is([data-palette="calabaza"],[data-palette="truco"]) :is(.logo,.wl-brand) b{font-family:"Rubik Wet Paint",var(--display);font-weight:400;letter-spacing:0}
/* La letra ya chorrea: fuera las gotas dibujadas encima, que estaban medidas para la letra de siempre */
html[data-palette="calabaza"] :is(.logo,.wl-brand) b::after{display:none}
.pilar-art{display:grid;margin-top:-4px}
.pilar-art svg{display:block;width:100%;height:auto;max-height:132px}
.pilar-art .sil{fill:var(--on-fest-c)}
.pilar-art .band{height:22px;background:var(--cachi,var(--fest))}
.pilar-art .burst line{stroke:var(--fest);stroke-width:2.5;stroke-linecap:round}
/* Halloween: las ruinas de Belchite de noche (hwArt), con telarañas arriba */
.hw-art svg{max-height:176px}
.hw-art .moon{fill:#F28C28}
.hw-art .bat{fill:var(--on-fest-c)}
.hw-art .batfly{transform-box:fill-box;transform-origin:center;animation:hwbatfly 5s ease-in-out infinite}
.hw-art .batwing{transform-box:fill-box;transform-origin:center;animation:hwbatwing .42s ease-in-out infinite alternate}
@keyframes hwbatfly{0%,100%{transform:translate(0,0)}25%{transform:translate(4px,-3px)}50%{transform:translate(7px,1px)}75%{transform:translate(3px,3px)}}
@keyframes hwbatwing{to{transform:scaleY(.45)}}
/* Alguien se asoma por la puerta de la iglesia (hwPeek): ojos rojos, cara pálida, mano en el marco y un salto al final; ciclo de 17 s */
.hw-art .peek{pointer-events:none}
.pk-face{fill:#E5DFC9}.pk-hair{fill:#0B0910}.pk-eye{fill:#05040A}.pk-glow{fill:#FF2B2B;opacity:0;animation:hwglow 17s ease-in-out -3s infinite}
.pk-mouth{fill:#05040A;stroke:#05040A;stroke-width:.35;stroke-linecap:round}
.peekhand path{fill:none;stroke:#17121F;stroke-width:1;stroke-linecap:round}
.peekin{transform-box:fill-box;transform-origin:50% 100%;opacity:0;animation:hwpeek 17s ease-in-out -3s infinite}
.peekhand{opacity:0;animation:hwhand 17s ease-in-out -3s infinite}
@keyframes hwpeek{0%,56%{opacity:0;transform:translate(7px,2px) rotate(8deg)}60%{opacity:1;transform:translate(5px,1px) rotate(7deg)}68%{opacity:1;transform:translate(1px,0) rotate(3deg)}80%{opacity:1;transform:none}83%{opacity:1;transform:translate(-.4px,-1px) scale(1.45)}86%{opacity:1;transform:translate(3px,0) scale(1.05)}92%,100%{opacity:0;transform:translate(8px,2px) rotate(8deg)}}
@keyframes hwhand{0%,60%{opacity:0;transform:translateX(3px)}66%,84%{opacity:1;transform:none}88%,100%{opacity:0;transform:translateX(3px)}}
@keyframes hwglow{0%,60%{opacity:0}64%,81%{opacity:1}82%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.hw-art :is(.batfly,.batwing){animation:none}.hw-art .peek{display:none}}
/* Jorge 21-oct: en la línea del tiempo de la agenda, calabazas (Calabaza) o fantasmas (Truco o trato) en vez de los puntos, del color de cada categoría */
html:is([data-palette="calabaza"],[data-palette="truco"]) .ev-dot{width:20px;height:20px;left:53px;top:15px;border-radius:50%;background:var(--bg);box-shadow:none}
html:is([data-palette="calabaza"],[data-palette="truco"]) .ev-dot::after{content:"";position:absolute;inset:1px;background:var(--g);-webkit-mask:var(--ev-ico) center/contain no-repeat;mask:var(--ev-ico) center/contain no-repeat}
html[data-palette="calabaza"]{--ev-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 6C8.5 4.2 3.5 5.6 3.5 11.8 3.5 17 7.5 20 12 20s8.5-3 8.5-8.2C20.5 5.6 15.5 4.2 12 6ZM11 3.2h2V6h-2ZM7.2 10.8 10 12 7.6 13ZM16.8 10.8 14 12 16.4 13ZM8 15l1.4 1.2 1.2-1 1.4 1.2 1.4-1.2 1.2 1 1.4-1.2-.6 2.2H8.6Z'/%3E%3C/svg%3E")}
html[data-palette="truco"]{--ev-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 3.5c-3.6 0-6 2.6-6 6.3V20l2-1.6 2 1.6 2-1.6 2 1.6 2-1.6 2 1.6V9.8c0-3.7-2.4-6.3-6-6.3ZM9 9.5a1.1 1.5 0 1 0 2.2 0 1.1 1.5 0 1 0-2.2 0ZM12.8 9.5a1.1 1.5 0 1 0 2.2 0 1.1 1.5 0 1 0-2.2 0ZM11 13.4a1 1.3 0 1 0 2 0 1 1.3 0 1 0-2 0Z'/%3E%3C/svg%3E")}
/* Bienvenida de Halloween: el título de la primera página con la letra de HALLOWEEN (Jorge 21-oct) */
html:is([data-palette="calabaza"],[data-palette="truco"]) .wl-p1 #wltitle{font-family:"Rubik Wet Paint",var(--display);font-weight:400;letter-spacing:0;line-height:1.08;font-size:clamp(32px,9.4vw,42px)}
/* y más letra de HALLOWEEN: el día en grande, las cabeceras de cada día y el mes del calendario */
html:is([data-palette="calabaza"],[data-palette="truco"]) :is(.dayhead :is(h1,.h1),.daysec>h2,.ribbon-head h2){font-family:"Rubik Wet Paint",var(--display);font-weight:400;letter-spacing:0}
.hw-art .tree{fill:none;stroke:var(--on-fest-c);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.hw-art .rose{fill:none;stroke:var(--on-fest-c);stroke-width:1.6}
.hw-art .pumpkin ellipse{fill:#C2540A;stroke:#7A2E04;stroke-width:.8}
.hw-art .pumpkin .face{fill:#FFC94D}
.hw-art .stem{fill:#3D6B2B}
.hwweb{position:absolute;top:0;width:76px;height:76px;pointer-events:none;opacity:.25;fill:none;stroke:var(--on-fest-c);stroke-width:1}
.hwweb.l{left:0}
/* Jorge 21-oct: las telarañas se mecen y de cada una baja, de vez en cuando, una araña colgada de su hilo */
.hwweb{transform-origin:0 0;animation:hwsway 7s ease-in-out infinite}
.hwweb.r{transform-origin:50% 0;animation-delay:-3.5s}
@keyframes hwsway{0%,100%{rotate:0deg}50%{rotate:3.5deg}}
.hwspider{position:absolute;z-index:2;top:0;width:12px;height:4px;opacity:0;color:var(--on-fest-c);pointer-events:none;animation:hwdrop 15s ease-in-out infinite}
/* solo baja la de la derecha: a la izquierda cuelga sobre el emblema */
.hwspider.l{display:none}
.hwspider.r{right:50px}
.hwspider::before{content:"";position:absolute;left:50%;top:0;bottom:8px;width:1px;background:color-mix(in oklab,currentColor 60%,transparent)}
.hwspider svg{position:absolute;left:0;bottom:0;width:12px;height:12px;fill:currentColor}
.hwcard{--len:58px}.hwhero{--len:104px}
@keyframes hwdrop{0%,46%{height:4px;opacity:0}50%{opacity:1}58%{height:var(--len)}64%{height:calc(var(--len)*.84)}70%{height:var(--len)}86%{height:4px;opacity:1}90%,100%{height:4px;opacity:0}}
html[data-palette="truco"] :is(.hwcard,.hwhero) .hwspider{display:none}
@media (prefers-reduced-motion:reduce){.hwweb,.hwspider{animation:none}.hwspider{display:none}}
.hwweb.r{right:0;transform:scaleX(-1)}
:is(.hwcard,.hwhero)>.body{position:relative;z-index:1}
/* La cabecera de la pestaña Halloween cabe entera en el móvil con la iglesia (Jorge 19-oct, en su Pixel) */
.hwhero .body{padding:16px 18px 12px}
.hwhero .fhead{margin-bottom:0}
.hwhero .emblem{width:44px;height:44px}
.hwhero .emblem svg.msvg{width:34px;height:34px}
/* Jorge 20-oct: en Halloween el fondo del emblema se queda quieto y la que gira es la calabaza, más grande */
/* Jorge 20-oct: en Calabaza, la tarjeta y la cabecera de Halloween con un borde naranja tan ancho como el de Truco o trato */
/* Jorge 21-oct: el aro, la mitad de ancho, y las telarañas por debajo de él: el aro va en un ::before por encima de ellas (antes era una sombra
   interior del propio recuadro y las telarañas se pintaban encima) */
html[data-palette="calabaza"] :is(.hwcard,.hwhero)::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 4px var(--fest)}
/* Tarjeta de la agenda pequeña (Jorge 20-oct): sin dibujo ni botón; se entra tocando la calabaza, que es un botón */
.hwcard.mini .body{padding:16px 18px 14px}
.hwcard.mini .fhead{margin-bottom:2px}
.hwcard .eyebrow{white-space:nowrap;letter-spacing:.1em}
.hwcard.mini :is(h2,h3){font-size:clamp(20px,5.2vw,24px)}
.hwcard.mini .count{margin:8px 0 8px;gap:6px}
.hwcard.mini .count div{min-width:56px;padding:6px 8px 5px}
.hwcard.mini .count b{font-size:24px}
.hwcard.mini .count span{font-size:11px}
.hwcard.mini .wave{margin:0 0 6px}
button.emblem.hw{padding:0;border-radius:50%;cursor:pointer;-webkit-tap-highlight-color:transparent}
button.emblem.hw:active{transform:scale(.9)}
.hwtoca{margin:0!important;font:800 13px/1.3 var(--body)!important;opacity:.8!important}
.emblem.hw svg:not(.msvg){animation:none}
.emblem.hw svg.msvg{width:40px;height:40px;animation:spin 16s linear infinite}
.hwhero .emblem.hw svg.msvg{width:34px;height:34px}
@media (prefers-reduced-motion:reduce){.emblem.hw svg.msvg{animation:none}}
/* «HALLOWEEN» en mayúsculas en la cabecera de la pestaña, con cualquier tema */
.hwhero h1{text-transform:uppercase}
.hwhero h1{margin:2px 0 4px;font-size:clamp(34px,9.5vw,48px)}
.hwhero .lead{margin:0 0 4px;font-size:15px;line-height:1.4}
.hwmeta{margin:0;font:800 14px/1.3 var(--body)}
.hwhero .count{margin:10px 0 8px;gap:6px}
.hwhero .count div{min-width:60px;padding:8px 8px 6px}
.hwhero .count b{font-size:28px}
.hwhero .wave{margin:0 0 10px}
/* Jorge 21-oct (opción A): «Mapa tenebroso» a todo el ancho, naranja, con flecha; debajo, el interruptor «Tema calabaza» */
/* Jorge 21-oct: «Mapa tenebroso», «Calabaza» y «Truco o trato», tres sellos iguales (la galleta del emblema con su icono). El del mapa va siempre
   lleno (lleva a otra pantalla); los temas van vacíos y se llenan, con un resplandor, al encenderse. */
.hwsellos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:6px}
.hwsello{display:grid;justify-items:center;align-content:start;gap:6px;padding:6px 2px 4px;border-radius:16px;color:var(--on-fest-c);font:800 13px/1.15 var(--body);text-align:center;-webkit-tap-highlight-color:transparent}
.hwsello:active{transform:scale(.94)}
.hwcookie{position:relative;display:grid;place-items:center;width:68px;height:68px;transition:filter .25s}
.hwcookie svg:not(.msvg){position:absolute;inset:0;width:100%;height:100%;fill:color-mix(in oklab,var(--on-fest-c) 12%,transparent);stroke:color-mix(in oklab,var(--on-fest-c) 40%,transparent);stroke-width:1;transition:fill .2s,stroke .2s}
.hwcookie .ms{position:relative;font-size:32px;color:var(--on-fest-c)}
.hwcookie svg.msvg{position:relative;width:34px;height:34px}
.hwsello:is([data-act="hmap"],[aria-checked="true"]) .hwcookie svg:not(.msvg){fill:var(--fest);stroke:none}
/* Jorge 21-oct: el fondo hondulado de los sellos se mueve muy leve y despacio (una vuelta cada 64 s y un respirar de 7 s, 4 %) y el fantasma levita un poco */
.hwcookie svg:not(.msvg){animation:spin 64s linear infinite,hwbreath 7s ease-in-out infinite alternate}
.hwsello[data-p="truco"] .hwcookie svg.msvg{animation:hwlevita 3.8s ease-in-out infinite alternate}
@keyframes hwbreath{from{scale:1}to{scale:1.04}}
@keyframes hwlevita{from{translate:0 -2px}to{translate:0 3px}}
@media (prefers-reduced-motion:reduce){.hwcookie svg:not(.msvg),.hwsello[data-p="truco"] .hwcookie svg.msvg{animation:none}}
.hwsello:is([data-act="hmap"],[aria-checked="true"]) .hwcookie .ms{color:var(--fest-c)}
.hwsello[aria-checked="true"] .hwcookie{filter:drop-shadow(0 0 9px color-mix(in oklab,var(--fest) 75%,transparent))}
.hwhero .hw-art svg{max-height:150px}
/* Ideas de Gemini (Jorge 19-oct). 1: la frase del buscador se funde al cambiar */
.searchpill .sp-t,#q::placeholder{transition:opacity .3s}
.searchpill .sp-t.hwfade,#q.hwfade::placeholder{opacity:0}
/* 2 (Jorge 19-oct: el parpadeo del reloj casi no se veía; noche: que sea un relámpago): cada 12 s cae un rayo en la tarjeta
   de Halloween (tres distintos que se turnan, Jorge 20-oct), con su resplandor, y la tarjeta se ilumina y tiembla un poco; enseguida, otro fogonazo más flojo. Dos golpes
   en 0,7 s y luego nada: menos de tres por segundo */
:is(.hwcard,.hwhero){animation:hwsusto 12s linear infinite}
:is(.hwcard,.hwhero)::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;animation:hwrayo 36s linear infinite}
/* Susto (hwSusto): la cara encendida a toda pantalla, menos de un segundo; no se puede tocar */
.hwboo{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#0B0708;pointer-events:none;animation:hwboo 1.05s ease-out forwards}
.hwboo svg{width:min(86vw,86vh);height:auto;animation:hwbooface 1.05s cubic-bezier(.2,1.4,.4,1) forwards}
@keyframes hwboo{0%{opacity:0}8%{opacity:1}72%{opacity:1}100%{opacity:0}}
@keyframes hwbooface{0%{transform:scale(.4)}14%{transform:scale(1.12)}24%{transform:scale(1)}60%{transform:scale(1.03)}100%{transform:scale(1.25)}}
@keyframes hwsusto{0%,88%,90.4%,93%,94.6%,100%{filter:none;transform:none}88.6%{filter:brightness(1.55);transform:translate(-2px,1px)}89.6%{filter:brightness(1.15);transform:translate(2px,-1px)}93.5%{filter:brightness(1.35);transform:translate(1px,1px)}}
@keyframes hwrayo{0%,100%{opacity:0}29.333%{opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M70 34 52 52 56 64M60 92 42 104'/%3E%3C/g%3E%3C/svg%3E") 82% 0/auto 82% no-repeat,radial-gradient(ellipse 70% 55% at 82% 12%,rgba(255,236,190,.5),transparent 72%)}29.533%{opacity:1;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M70 34 52 52 56 64M60 92 42 104'/%3E%3C/g%3E%3C/svg%3E") 82% 0/auto 82% no-repeat,radial-gradient(ellipse 70% 55% at 82% 12%,rgba(255,236,190,.5),transparent 72%)}29.867%{opacity:.25;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M70 34 52 52 56 64M60 92 42 104'/%3E%3C/g%3E%3C/svg%3E") 82% 0/auto 82% no-repeat,radial-gradient(ellipse 70% 55% at 82% 12%,rgba(255,236,190,.5),transparent 72%)}30.133%,31.000%{opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M70 34 52 52 56 64M60 92 42 104'/%3E%3C/g%3E%3C/svg%3E") 82% 0/auto 82% no-repeat,radial-gradient(ellipse 70% 55% at 82% 12%,rgba(255,236,190,.5),transparent 72%)}31.167%{opacity:.8;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M70 34 52 52 56 64M60 92 42 104'/%3E%3C/g%3E%3C/svg%3E") 82% 0/auto 82% no-repeat,radial-gradient(ellipse 70% 55% at 82% 12%,rgba(255,236,190,.5),transparent 72%)}31.533%{opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M80 0 70 34 86 52 60 92 76 108 48 156 58 170 38 220M76 108 98 134 92 152 108 184'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M70 34 52 52 56 64M60 92 42 104'/%3E%3C/g%3E%3C/svg%3E") 82% 0/auto 82% no-repeat,radial-gradient(ellipse 70% 55% at 82% 12%,rgba(255,236,190,.5),transparent 72%)}62.667%{opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M44 40 62 58M40 124 24 132'/%3E%3C/g%3E%3C/svg%3E") 10% 0/auto 88% no-repeat,radial-gradient(ellipse 70% 55% at 18% 12%,rgba(255,236,190,.5),transparent 72%)}62.867%{opacity:1;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M44 40 62 58M40 124 24 132'/%3E%3C/g%3E%3C/svg%3E") 10% 0/auto 88% no-repeat,radial-gradient(ellipse 70% 55% at 18% 12%,rgba(255,236,190,.5),transparent 72%)}63.200%{opacity:.25;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M44 40 62 58M40 124 24 132'/%3E%3C/g%3E%3C/svg%3E") 10% 0/auto 88% no-repeat,radial-gradient(ellipse 70% 55% at 18% 12%,rgba(255,236,190,.5),transparent 72%)}63.467%,64.333%{opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M44 40 62 58M40 124 24 132'/%3E%3C/g%3E%3C/svg%3E") 10% 0/auto 88% no-repeat,radial-gradient(ellipse 70% 55% at 18% 12%,rgba(255,236,190,.5),transparent 72%)}64.500%{opacity:.8;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M44 40 62 58M40 124 24 132'/%3E%3C/g%3E%3C/svg%3E") 10% 0/auto 88% no-repeat,radial-gradient(ellipse 70% 55% at 18% 12%,rgba(255,236,190,.5),transparent 72%)}64.867%{opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M30 0 44 40 28 62 52 98 40 124 62 170 54 196 70 220M52 98 30 120 34 140 18 168'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M44 40 62 58M40 124 24 132'/%3E%3C/g%3E%3C/svg%3E") 10% 0/auto 88% no-repeat,radial-gradient(ellipse 70% 55% at 18% 12%,rgba(255,236,190,.5),transparent 72%)}96.000%{opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M66 40 80 50'/%3E%3C/g%3E%3C/svg%3E") 52% 0/auto 62% no-repeat,radial-gradient(ellipse 70% 55% at 52% 12%,rgba(255,236,190,.5),transparent 72%)}96.200%{opacity:1;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M66 40 80 50'/%3E%3C/g%3E%3C/svg%3E") 52% 0/auto 62% no-repeat,radial-gradient(ellipse 70% 55% at 52% 12%,rgba(255,236,190,.5),transparent 72%)}96.533%{opacity:.25;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M66 40 80 50'/%3E%3C/g%3E%3C/svg%3E") 52% 0/auto 62% no-repeat,radial-gradient(ellipse 70% 55% at 52% 12%,rgba(255,236,190,.5),transparent 72%)}96.800%,97.667%{opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M66 40 80 50'/%3E%3C/g%3E%3C/svg%3E") 52% 0/auto 62% no-repeat,radial-gradient(ellipse 70% 55% at 52% 12%,rgba(255,236,190,.5),transparent 72%)}97.833%{opacity:.8;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M66 40 80 50'/%3E%3C/g%3E%3C/svg%3E") 52% 0/auto 62% no-repeat,radial-gradient(ellipse 70% 55% at 52% 12%,rgba(255,236,190,.5),transparent 72%)}98.200%{opacity:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 220'%3E%3Cdefs%3E%3Cfilter id='g' x='-50%25' y='-20%25' width='200%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='5'/%3E%3C/filter%3E%3C/defs%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath filter='url(%23g)' stroke='%23FFC24D' stroke-width='12' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='4' d='M58 0 52 26 66 40 50 70 62 84 46 120M78 10 88 36 76 52 92 78'/%3E%3Cpath stroke='%23FFF8E6' stroke-width='2' d='M66 40 80 50'/%3E%3C/g%3E%3C/svg%3E") 52% 0/auto 62% no-repeat,radial-gradient(ellipse 70% 55% at 52% 12%,rgba(255,236,190,.5),transparent 72%)}}
/* 4: nivel de miedo en las tarjetas de los planes de Halloween */
.tag.miedo.m2{background:color-mix(in oklab,#B3261E 22%,var(--container));color:var(--ink)}
/* 5: bruma y bordes oscuros muy suaves en el mapa de Halloween; no tapa los botones y no se puede tocar. Jorge 19-oct noche:
   las nubes, todas en movimiento y pegadas al suelo: siguen al mapa al arrastrarlo y crecen un poco al acercar (--fx, --fy y
   --fs, de fogSync en 5-maps.js; translate y scale se suman a la deriva lenta de hwfog). Los bordes oscuros, quietos */
html.hw-map .map::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse 85% 80% at 50% 50%,transparent 42%,rgba(10,4,18,.82) 100%)}
html.hw-map .map::before{content:"";position:absolute;top:0;left:0;width:calc(133.4% + 2560px);height:calc(133.4% + 840px);transform-origin:0 0;translate:var(--fx,0px) var(--fy,0px);scale:var(--fs,1);z-index:1;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='420'%3E%3Cfilter id='f' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.006 0.011' numOctaves='4' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .93 0 0 0 0 .91 0 0 0 0 .98 .95 0 0 0 -0.43'/%3E%3C/filter%3E%3Crect width='640' height='420' filter='url(%23f)'/%3E%3C/svg%3E") 0 0/640px 420px repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='420'%3E%3Cfilter id='f' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.004 0.007' numOctaves='4' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .93 0 0 0 0 .91 0 0 0 0 .98 1.1 0 0 0 -0.6'/%3E%3C/filter%3E%3Crect width='640' height='420' filter='url(%23f)'/%3E%3C/svg%3E") 0 0/1280px 840px repeat;animation:hwfog 180s linear infinite;will-change:transform}
@keyframes hwfog{to{transform:translateX(-1280px)}}
/* 6: lugares con leyenda en el mapa de Halloween, con un pulso morado y verde */
.leypin{width:34px;height:34px;display:grid;place-items:center;padding:0;border:2px solid #C9F27A;border-radius:50%;background:#3B1C46;color:#F3EAF4;cursor:pointer;animation:leypulse 2.4s ease-out infinite}
.leypin svg.msvg{width:20px;height:20px}
/* Jorge 20-oct: con Calabaza (y los demás temas), los lugares con leyenda son calabazas tenebrosas, con un pulso naranja */
.leypin.pk{border-color:#FF8A3D;background:#2A1206;color:#FF9A52;animation-name:leypulsepk}
.leypin.pk svg.msvg{width:22px;height:22px}
/* Jorge 26-oct: la leyenda va por encima de los puntos de planes; si coinciden, se puede abrir igual */
.leypin.maplibregl-marker{z-index:4}
/* Jorge 21-oct: los iconos del mapa se mueven (la calabaza se balancea, el fantasma flota) y con el rayo, cada 36 s como el de las tarjetas, se encienden
   de golpe con un destello blanco y dan un saltito. rotate, translate y scale son propiedades aparte: no pisan el transform con el que MapLibre coloca el marcador */
.leypin{animation:leypulse 2.4s ease-out infinite,leyfloat 5s ease-in-out infinite alternate,leyrayo 36s linear infinite}
.leypin.pk{animation:leypulsepk 2.4s ease-out infinite,leyfloat 5s ease-in-out infinite alternate,leyrayo 36s linear infinite}
/* Jorge 21-oct: «hace mucho movimiento»: se quita el balanceo y el saltito del rayo; solo una levitación leve y lenta (±2 px) y, con el rayo, un brillo suave */
@keyframes leyfloat{from{translate:0 -2px}to{translate:0 2px}}
@keyframes leyrayo{0%,29%,31.6%,100%{filter:none}29.4%{filter:brightness(1.7) drop-shadow(0 0 8px #fff)}29.9%{filter:brightness(1.2)}30.4%{filter:brightness(1.6) drop-shadow(0 0 7px #fff)}}
@keyframes leypulsepk{0%{box-shadow:0 0 0 0 rgba(255,122,26,.75),0 0 10px rgba(255,170,60,.7)}70%,100%{box-shadow:0 0 0 14px rgba(255,122,26,0),0 0 10px rgba(255,170,60,.7)}}
/* Los fantasmitas de Belchite (Truco o trato), del color de la iglesia */
.hw-art .ghost{fill:var(--on-fest-c)}
@keyframes leypulse{0%{box-shadow:0 0 0 0 rgba(168,85,247,.7),0 0 8px rgba(201,242,122,.6)}70%,100%{box-shadow:0 0 0 14px rgba(168,85,247,0),0 0 8px rgba(201,242,122,.6)}}
.leyeye{display:flex;align-items:center;gap:6px;margin:0 0 4px;font:900 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.leyver{display:flex;gap:8px;align-items:flex-start;color:var(--ink-2)}
.leyfuente{color:var(--ink-3);font-size:13px}
/* Los marcadores, por encima de la niebla; los botones del mapa siguen encima de todo */
html.hw-map .map .maplibregl-marker{z-index:2}
@media (prefers-reduced-motion:reduce){:is(.hwcard,.hwhero),:is(.hwcard,.hwhero)::after,html.hw-map .map::before,.leypin,.leypin.pk{animation:none}}
/* La tarjeta y la cabecera de Halloween van siempre de noche (naranja y morado), con cualquier paleta y tema (Jorge 18-oct:
   «este tema solo tiene modo oscuro»); lo de dentro (cuenta atrás, botones) toma también los colores oscuros */
:is(.hwcard,.hwhero){color-scheme:dark;--fest:#FF9A52;--fest-c:#35203F;--on-fest-c:#FFE6D4;--surface:#1E1824;--container:#28202F;--ink:#F3EAF4;--ink-2:#D6C8D8;--ink-3:#A898AB;--outline:#5E5266;--outline-soft:#3A3042}
.fiesta .btns{display:flex;flex-wrap:wrap;gap:8px}
.fiesta .btn{min-height:42px;padding:8px 18px;color:var(--on-fest-c);border-color:color-mix(in oklab,var(--on-fest-c) 35%,transparent)}
.fiesta .btn.primary{background:var(--fest);border-color:var(--fest);color:var(--fest-c)}
/* Vista de fiestas */
.pilar-hero{position:relative;overflow:hidden;margin:6px 0 18px;border-radius:var(--r-xl);background:var(--fest-c);color:var(--on-fest-c)}
.pilar-hero .body{padding:24px 22px 22px}
.pilar-hero h1{margin:6px 0 4px;font:1000 clamp(34px,8vw,54px)/1 var(--display);letter-spacing:-.03em}
.pilar-hero .lead{margin:6px 0 8px;max-width:46ch;font:600 16px/1.45 var(--body)}
.pilar-hero .stats{display:flex;flex-wrap:wrap;gap:14px;margin:10px 0 14px;font:700 14px/1.2 var(--body)}
.pilar-hero .stats b{font:1000 20px/1 var(--display)}
.pdays{display:flex;gap:6px;overflow-x:auto;padding:4px 2px 10px;margin:0 -2px 6px;scrollbar-width:thin}
.pday{flex:none;scroll-snap-align:start;display:grid;justify-items:center;gap:2px;min-width:62px;padding:8px 6px;border-radius:16px;background:var(--container);color:var(--ink-2);transition:background .2s}
.pday .wd{font:800 11px/1 var(--body);text-transform:uppercase;letter-spacing:.06em}
.pday b{font:1000 22px/1 var(--display);color:var(--ink)}
.pday small{font:800 11px/1 var(--body);color:var(--ink-3)}
.pday[aria-pressed="true"]{background:var(--fest);color:var(--fest-c)}
.pday[aria-pressed="true"] b,.pday[aria-pressed="true"] small{color:var(--fest-c)}
/* Jorge 28-oct: «Hoy, no te lo pierdas» en carrusel (Pilar y Halloween); asoma el siguiente plan para que se vea que se desliza */
.must{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:16px;margin:12px -16px 8px;padding:2px 16px 4px;scrollbar-width:none}
.must::-webkit-scrollbar{display:none}
.must>.mustc{flex:0 0 min(86%,300px);scroll-snap-align:start}
@media (min-width:900px){.must{margin:12px 0 8px;padding-inline:0;scroll-padding-inline:0}}
.mustc{position:relative;display:grid;gap:6px;align-content:start;text-align:left;padding:14px 14px 14px 16px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-1),inset 4px 0 0 var(--fest)}
.mustc .when{font:900 13px/1.2 var(--display);color:var(--fest)}
.mustc b{font:900 17px/1.2 var(--display);overflow-wrap:anywhere}
.mustc span{font:600 13px/1.35 var(--body);color:var(--ink-2)}

/* ---------- Vacío ---------- */
.empty{margin:24px 0;padding:28px 20px;text-align:center;border-radius:var(--r-l);background:var(--container);color:var(--ink-2)}
.empty>.ms{font-size:40px;color:var(--primary);width:auto;height:auto;margin-bottom:6px}
.empty :is(h2,h3){margin:0 0 6px;font:900 20px/1.2 var(--display);color:var(--ink)}
.empty p{margin:0}
.empty .btns{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px}
.empty .inl{font-size:18px;vertical-align:-3px;width:auto;height:auto}
.fuentes{margin:36px 0 12px;padding-top:12px;border-top:1px solid var(--outline-soft);color:var(--ink-3);font-size:13px;padding-right:60px}
/* Jorge (19-oct): «Síguenos en Instagram» al pie de cada pestaña */
.fuentes .fsocial{display:flex;align-items:center;gap:8px;width:max-content;min-height:40px;margin-top:6px;color:var(--ink-2);font:800 14px/1.2 var(--body);text-decoration:none}
.fuentes .fsocial .ms{font-size:20px;color:var(--primary)}
.fuentes .fsocial svg.msvg{width:20px;height:20px}

/* ---------- Botones flotantes: subir y bajar rápido, añadir ---------- */
.fabs{position:fixed;right:max(14px,env(safe-area-inset-right,0px));bottom:calc(var(--nav-h) + var(--safe-b) + 14px);z-index:38;display:grid;gap:10px;justify-items:end;transition:opacity .25s,transform .32s var(--ease)}
/* ZIRPA-APP (Jorge 3-oct, «todo fluido»): baja con transform cuando se esconde la barra, no animando «bottom» */
html.bars-off .fabs{transform:translateY(var(--nav-h))}
.jump{display:grid;border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow-2);overflow:hidden;transition:opacity .25s,transform .3s var(--ease)}
.jump.off{opacity:0;transform:translateY(12px) scale(.9);pointer-events:none}
.jump button{position:relative;width:48px;height:48px;display:grid;place-items:center;color:var(--ink)}
.jump button:disabled{color:var(--ink-3);opacity:.45}
.jump button+button{border-top:1px solid var(--outline-soft)}
.jump button:active{background:var(--container)}
.jump.idle:not(:focus-within){opacity:0;transform:translateX(8px);pointer-events:none}
@media (max-width:899px){.search{animation:fade .2s var(--ease-d) both}}
@media (max-width:599px){.fabs{right:max(6px,env(safe-area-inset-right,0px))}.jump button{width:44px;height:44px}}
.fab{position:relative;display:inline-flex;align-items:center;gap:12px;height:56px;padding:0 20px 0 16px;border-radius:var(--r-l);background:var(--azul);color:#fff;font:800 15px/1 var(--body);box-shadow:var(--shadow-2);transition:transform .3s var(--spring)}
.fab:active{transform:scale(.96)}
/* ZIRPA-APP (Jorge 4-oct): botón de buscar (o IA) que aparece donde estaba la barra de abajo cuando las barras se esconden.
   Va fuera de la columna para no mover los otros botones; al esconderse la barra, la columna le deja sitio debajo */
.sfab{position:absolute;right:0;bottom:0;width:56px;height:56px;display:grid;place-items:center;border-radius:var(--r-l);background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-2);opacity:0;transform:scale(.6);pointer-events:none;transition:opacity .2s,transform .3s var(--spring)}
.sfab .ms{font-size:26px;width:26px;height:26px}
html.bars-off .fabs:has(.sfab){padding-bottom:66px}
html.bars-off .sfab{opacity:1;transform:none;pointer-events:auto}
html.bars-off .sfab:active{transform:scale(.94)}
/* Escribiendo en el buscador de una página (Lugares), el botón de buscar sobra y taparía resultados */
html.bars-off:has(.field input:focus) .sfab{opacity:0;transform:scale(.6);pointer-events:none}
:root[data-theme="dark"] .fab{color:#0B1A33}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fab{color:#0B1A33}}

/* ---------- Mapas ---------- */
.map{position:relative;overflow:hidden;background:var(--container)}
.map.schem{touch-action:none;user-select:none;-webkit-user-select:none}
.map canvas.sc,.map svg.ov{position:absolute;inset:0;width:100%;height:100%}
.map svg.ov{overflow:visible}
.map .ctl{position:absolute;right:12px;top:12px;display:grid;gap:0;z-index:3;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-2);overflow:hidden}
.map .ctl button{width:44px;height:44px;display:grid;place-items:center;color:var(--ink-2)}
.map .ctl button+button{border-top:1px solid var(--outline-soft)}
.map .ctl button[aria-pressed="true"]{background:var(--primary-c);color:var(--on-primary-c)}
.map .ctl .t3d{font:1000 14px/1 var(--display);letter-spacing:-.02em}
.map .note{position:absolute;left:12px;bottom:10px;z-index:3;font:600 11px/1.2 var(--body);color:var(--ink-3);background:color-mix(in oklab,var(--surface) 85%,transparent);padding:4px 8px;border-radius:8px}
.mk{cursor:pointer}
.mk .r{transition:transform .3s var(--spring);transform-box:fill-box;transform-origin:center}
.mk:hover .r,.mk.on .r{transform:scale(1.25)}
.mk text{font:800 11px var(--body);fill:#fff;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.mk-label{font:800 12px var(--body);paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;fill:var(--ink)}
.district{font:800 10px var(--body);letter-spacing:.14em;text-transform:uppercase;fill:var(--ink-3);text-anchor:middle;paint-order:stroke;stroke:var(--container);stroke-width:3px}
.landmark{font:700 11px var(--body);fill:var(--ink-2);paint-order:stroke;stroke:var(--container);stroke-width:3px}
.pulse{animation:ring 1.4s var(--ease) infinite;transform-box:fill-box;transform-origin:center}
.editing .mk[data-spot]{cursor:grab}
/* Marcadores del mapa real (el transform exterior lo pone MapLibre) */
.pin{width:36px;height:36px;padding:0;border:0;background:none;cursor:pointer}
.pin .pw{position:relative;display:block;width:100%;height:100%;transition:transform .25s var(--spring);transform-origin:50% 130%}
.pin-in{position:absolute;inset:0;display:grid;place-items:center;background:var(--g);border:2.5px solid #fff;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);box-shadow:0 3px 6px rgba(0,0,0,.28)}
.pin-in .ms{transform:rotate(45deg);font-size:18px;color:#fff}
:root[data-theme="dark"] .pin-in .ms{color:#2A1A1D}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pin-in .ms{color:#2A1A1D}}
.pin-n{position:absolute;top:-7px;right:-9px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--ink);color:var(--bg);font:800 11px/19px var(--body);text-align:center}
.pin:hover .pw,.pin.on .pw{transform:scale(1.18)}
.pin.on{z-index:3}
/* Jorge 21-oct: en el mapa de Halloween, los planes de Halloween llevan la calabaza (o el fantasma) en su pin, con un halo verde lima que respira; los lugares con leyenda
   llevan el suyo naranja (calabaza) o morado y verde (fantasma) y laten hacia fuera, así que no se confunden */
.pin.hw{--halo:#C9F27A}
html[data-palette="truco"] .pin.hw{--halo:#E8873A}
.pin.hw .pin-in{box-shadow:0 3px 6px rgba(0,0,0,.28),0 0 0 3px color-mix(in oklab,var(--halo) 60%,transparent),0 0 14px var(--halo);animation:hwpinhalo 2.4s ease-in-out infinite alternate}
.pin.hw .pin-in svg.msvg{width:20px;height:20px}
.pin.hw .pin-in{background:#2A1206;border-color:var(--halo)}
.pin.hw .pin-in .ms{color:#FF9A52}
html[data-palette="truco"] .pin.hw .pin-in{background:#16130E}
html[data-palette="truco"] .pin.hw .pin-in .ms{color:#F0DDB6}
@keyframes hwpinhalo{from{box-shadow:0 3px 6px rgba(0,0,0,.28),0 0 0 3px color-mix(in oklab,var(--halo) 35%,transparent),0 0 6px var(--halo)}to{box-shadow:0 3px 6px rgba(0,0,0,.28),0 0 0 4px color-mix(in oklab,var(--halo) 75%,transparent),0 0 20px var(--halo)}}
@media (prefers-reduced-motion:reduce){.pin.hw .pin-in{animation:none}}
.sqpin{width:26px;height:26px;display:grid;place-items:center;padding:0;border:2px solid var(--g);border-radius:8px;background:var(--surface);color:var(--g);cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,.2)}
.sqpin .ms{font-size:16px}
.editing .sqpin{cursor:grab;border-style:dashed;width:32px;height:32px}
.dotpin{width:13px;height:13px;padding:0;border-radius:50%;border:2px solid var(--surface);background:var(--dc,var(--ink-3));cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.mepin{width:20px;height:20px;border-radius:50%;background:#1A73E8;border:3px solid #fff;box-shadow:0 0 0 6px rgba(26,115,232,.25)}
.mepin.start{background:var(--ink-3);box-shadow:0 0 0 6px color-mix(in oklab,var(--ink-3) 25%,transparent)}
.endpin{width:34px;height:40px;display:grid;place-items:start center}
.endpin span{width:34px;height:34px;display:grid;place-items:center;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--primary);border:2.5px solid var(--surface);box-shadow:0 3px 6px rgba(0,0,0,.28)}
.endpin .ms{transform:rotate(45deg);font-size:18px;color:var(--on-primary)}
.sqpin.dragging{cursor:grabbing;box-shadow:0 8px 18px rgba(0,0,0,.3)}
.map.schem.mini{touch-action:pan-y}
.mk.drag .r{transform:scale(1.4)}
.editing .mk[data-spot]:active{cursor:grabbing}
.s-farmacia{--dc:var(--good)} .s-comer{--dc:var(--k-humor)} .s-beber{--dc:var(--k-teatro)} .s-noche{--dc:var(--k-circo)}
.map.real .maplibregl-ctrl-group{border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-2);overflow:hidden}
.map.real .maplibregl-ctrl-group button{width:40px;height:40px}
.map.real .maplibregl-ctrl-group button+button{border-top:1px solid var(--outline-soft)}
.map.real .maplibregl-ctrl-group button[aria-pressed="true"]{background:var(--primary-c)}
.map.real .maplibregl-ctrl-icon{filter:none}
:root[data-theme="dark"] .map.real .maplibregl-ctrl-icon{filter:invert(.9)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .map.real .maplibregl-ctrl-icon{filter:invert(.9)}}
.map.real .maplibregl-ctrl-attrib{font:600 11px/1.3 var(--body)}
.map.real .maplibregl-ctrl-attrib{background:color-mix(in oklab,var(--surface) 80%,transparent);color:var(--ink-2)}
.map.real .maplibregl-ctrl-attrib a{color:var(--ink-2)}
.map.real .ctl3d{font:1000 13px/40px var(--display)!important;color:var(--ink)!important;letter-spacing:-.02em}
.map.real .ctl3d[aria-pressed="true"]{color:var(--on-primary-c)!important}
.map.real .ctlhw{display:grid;place-items:center;color:var(--ink)!important}
.map.real .ctlhw svg.msvg{width:24px;height:24px}
.map.real .ctlhw[aria-pressed="true"]{color:var(--on-primary-c)!important}

/* Vista de mapa */
.mapview{position:relative;padding:0;max-width:none;--map-controls-top:76px}
html[data-palette="cachirulo"] .mapview{--map-controls-top:calc(76px + var(--band))}
.mapview .note{display:none}
.mapview .map{height:calc(100vh - var(--top-h) - var(--nav-h) - var(--safe-b) - var(--safe-t));height:calc(100dvh - var(--top-h) - var(--nav-h) - var(--safe-b) - var(--safe-t))}
/* Capas del mapa: una sola fila que se desliza; los sitios van juntos en un menú */
.mapbar{position:absolute;left:0;right:0;top:0;z-index:4;display:flex;flex-wrap:nowrap;gap:6px;padding:12px;overflow-x:auto;scrollbar-width:none;pointer-events:none}
.mapbar::-webkit-scrollbar{display:none}
.mapbar>*{pointer-events:auto;flex:none}
.mapbar .chip{min-height:36px;padding:5px 12px;font-size:13px;background:var(--surface);border-color:transparent;box-shadow:var(--shadow-1);white-space:nowrap}
.mapbar .chip .n{padding:2px 6px;font-size:11px}
/* En móvil estrecho «Filtros» se queda en icono para que quepa siempre sin deslizar */
@media (max-width:440px){.mapbar{gap:4px;padding:12px 10px}.mapbar .chip{padding:5px 8px;gap:4px;font-size:12.5px}.mapbar .chip>.ms:first-child{font-size:19px}.mapbar .mfilt .lbl{display:none}.mapbar .chip[data-layer="planes"]>.ms,.mapbar .chip[data-layer="mios"]>.ms{display:none}
  /* El número de «Lugares» y «Filtros» es una chapita en la esquina: no ensancha el botón (con «Pilares» encendido salían números en los dos y la barra se salía) */
  .mapbar .chip{position:relative}
  .mapbar .chip .n{position:absolute;top:-5px;right:-3px;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;font-size:10.5px;line-height:1;border-radius:9px;box-shadow:0 0 0 2px var(--surface)}
}
/* La fila se desliza en móviles estrechos y conserva el nombre de Lugares. */
.mapbar .chip>.ms:last-child:not(:first-child){margin:0 -6px 0 -4px;font-size:18px}
.mapview .map .ctl{top:var(--map-controls-top)}
.mapview .maplibregl-ctrl-top-right{top:calc(var(--map-controls-top) - 10px)}
.menu{padding:8px 0}
.menu h4{margin:6px 16px 8px}
.mrow{position:relative;display:grid;grid-template-columns:36px 1fr 24px;gap:12px;align-items:center;width:100%;min-height:48px;padding:4px 16px;text-align:left;font:700 15px/1.2 var(--body)}
@media (hover:hover){.mrow:hover{background:color-mix(in oklab,var(--ink) 6%,transparent)}}
.mrow .mi{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:color-mix(in oklab,var(--dc,var(--primary)) 16%,transparent);color:var(--dc,var(--primary))}
.mrow .mi .ms{font-size:20px}
.mrow .ml small{display:block;margin-top:2px;font:600 12px/1.3 var(--body);color:var(--ink-3)}
.menu{max-height:calc(100dvh - 140px);overflow-y:auto;overscroll-behavior:contain}
.mrow>.ms{color:var(--primary);visibility:hidden}
.mrow[aria-checked="true"]>.ms{visibility:visible}
.s-cultura{--dc:var(--k-museo)} .s-patrimonio{--dc:var(--k-feria)} .s-parque{--dc:var(--k-ruta)} .s-escenario{--dc:var(--k-teatro)} .s-civico{--dc:var(--k-taller)} .s-transporte{--dc:var(--k-otros)} .s-ocio{--dc:var(--k-circo)} .s-compras{--dc:var(--k-juego)} .s-deporte{--dc:var(--k-deporte)} .s-bares{--dc:var(--k-musica)} .s-servicios{--dc:var(--k-otros)}
.pophead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-6px -6px 4px 0}.pophead h4{margin:0 4px} .s-pena{--dc:var(--fest)} .s-clases{--dc:var(--k-taller,var(--azul))} .s-hotel{--dc:var(--azul)}
/* ZIRPA-APP (Jorge 8-oct): el botón elegido, relleno del color fuerte (con primary-c se veía gris en la paleta verde y parecía al revés) */
.mapbar .chip[aria-pressed="true"]{background:var(--primary);color:var(--on-primary)}
.mapbar .chip.pfest[aria-pressed="true"]{background:var(--fest);color:var(--surface)}
.chip.edit,.mapbar .chip.edit{background:var(--azul);color:#fff;border-color:transparent}
.chip.edit[aria-pressed="true"]{box-shadow:0 0 0 3px color-mix(in oklab,var(--azul) 35%,transparent)}
:root[data-theme="dark"] .chip.edit{color:#0B1A33}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .chip.edit{color:#0B1A33}}
.mapday{position:absolute;left:12px;right:12px;bottom:12px;z-index:4;display:grid;gap:8px;pointer-events:none}
.mapday>*{pointer-events:auto}
.mdrow{display:flex;align-items:flex-end;gap:8px;pointer-events:none}
.mdrow>*{pointer-events:auto}
.mdrow .pill{margin-right:auto}
.fsbtn{margin-left:auto;width:48px;height:48px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-2)}
@media (hover:hover){.fsbtn:hover{background:var(--container)}}
.fsbtn[aria-pressed="true"]{background:var(--primary-c);color:var(--on-primary-c)}
/* Mapa a pantalla completa */
html.mapfull .topbar{transform:translateY(-100%)}
html.mapfull .bottomnav{transform:translateY(100%)}
html.mapfull .editbar,html.mapfull .fabs{display:none}
html.mapfull .mapview{position:fixed;inset:0;z-index:45;background:var(--bg);animation:fade .25s ease both}
html.mapfull .mapview{--map-controls-top:calc(76px + var(--safe-t))}
html.mapfull .mapview .map{height:100vh;height:100dvh}
html.mapfull .mapbar{padding-top:calc(12px + var(--safe-t))}
html.mapfull .mapday{bottom:calc(12px + var(--safe-b))}
html.mapfull .map.real~.mapday{bottom:calc(34px + var(--safe-b))}
html.mapfull .toast{bottom:calc(16px + var(--safe-b))}
.map.real~.mapday{bottom:34px}
.mapday .pill{justify-self:start;display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-2)}
.mapday .pill b{padding:0 8px;font:800 14px/1 var(--display);white-space:nowrap}
.mapday .pill .iconbtn{width:38px;height:38px}
.mapnote{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:10px 6px 10px 12px;border-radius:16px;background:var(--surface);box-shadow:var(--shadow-2);font-size:13px;line-height:1.4;color:var(--ink-2)}
.mapnote>.ms{color:var(--primary);margin-top:1px}
.mapnote b{color:var(--ink)}
.mapnote .iconbtn{width:34px;height:34px}
.peek{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-2);padding:14px;max-height:46vh;max-height:46dvh;overflow:auto;overscroll-behavior:contain;animation:peek .4s var(--ease)}
.peek header{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.peek header div{flex:1;min-width:0}
.peek h3{margin:0;font:900 17px/1.2 var(--display)}
.peek header p{margin:2px 0 0;color:var(--ink-3);font-size:13px}
.peek h3 .plink{display:inline-flex;align-items:center;gap:2px;min-height:32px;margin:-4px 0;padding:0;font:inherit;color:inherit;text-align:left}.peek h3 .plink .ms{font-size:22px;color:var(--primary)}
.peek .btn{width:100%;margin-top:8px}
/* Dirección con su botón pequeño de navegar al lado */
.addr{display:flex;align-items:center;gap:6px;margin:0 0 6px;font:600 14px/1.35 var(--body);color:var(--ink-2)}
.addr>.ms{font-size:18px;color:var(--ink-3)}
.addr>span:not(.ms){flex:1;min-width:0;overflow-wrap:anywhere}
.navmini{position:relative;flex:none;display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 12px 0 8px;border-radius:16px;background:var(--primary-c);color:var(--on-primary-c);font:800 13px/1 var(--body);transition:background .2s,transform .2s var(--spring)}
.navmini .ms{font-size:18px}
.navmini:active{transform:scale(.94)}
.navmini::after{content:"";position:absolute;inset:-6px -4px}
@media (hover:hover){.navmini:hover{background:color-mix(in oklab,var(--primary-c) 80%,var(--primary))}}
.fact .navmini{align-self:center}
.fact.go{grid-template-columns:22px 1fr auto}
.peek .row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.peek .row2 .btn{margin-top:8px}
.peekrow{display:grid;grid-template-columns:48px 1fr;gap:10px;width:100%;text-align:left;padding:9px 6px;border-top:1px solid var(--outline-soft);border-radius:0}
/* ZIRPA-APP (Jorge 5-oct): la raya entre filas es recta (con esquinas redondeadas se curvaba en los extremos) */
.peeknext{margin:12px 0 2px;font:900 11.5px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
@media (hover:hover){.peekrow:hover{background:var(--container)}}
.peekrow b{font:800 15px/1.2 var(--display);font-variant-numeric:tabular-nums}
.peekrow span:not(.ms){font:700 14px/1.3 var(--body);overflow-wrap:anywhere}
.peekrow small{display:flex;align-items:center;gap:4px;color:var(--g);font-weight:800}
.peekrow small .ms{font-size:15px}
/* Ruta dentro de la app */
.route{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-2);padding:14px;max-height:52vh;max-height:52dvh;overflow:auto;overscroll-behavior:contain;animation:peek .4s var(--ease)}
.route header{display:flex;gap:10px;align-items:flex-start}
.route header div{flex:1;min-width:0}
.route h3{margin:0;font:900 17px/1.2 var(--display);overflow-wrap:anywhere}
.route header p{margin:2px 0 0;font-size:13px;color:var(--ink-3)}
.modes{display:flex;gap:6px;margin:10px 0}
.modes .chip{flex:1;justify-content:center;padding:6px 8px}
.rsum{display:flex;align-items:baseline;gap:10px;margin:4px 2px 8px}
.rsum b{font:1000 30px/1 var(--display);color:var(--primary)}
.rsum span{font:700 14px/1.3 var(--body);color:var(--ink-2)}
.steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--outline-soft)}
.steps li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--outline-soft);font-size:14px}
.steps li .ms{color:var(--primary)}
.steps li small{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.rnote{display:flex;gap:8px;align-items:flex-start;margin:6px 0;padding:10px 12px;border-radius:var(--r-l);background:var(--container);font-size:13px;color:var(--ink-2)}
.rnote .ms{font-size:18px;color:var(--primary)}
.ext{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
/* Ruta del día: paradas numeradas y lo que se tarda entre una y otra */
.stops{list-style:none;margin:4px 0 0;padding:0}
.stops .stop{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center}
.stops .stop button{display:grid;gap:2px;min-width:0;padding:8px 6px;border-radius:12px;text-align:left}
@media (hover:hover){.stops .stop button:hover{background:var(--container)}}
.stops .stop b{font:800 15px/1.25 var(--display);overflow-wrap:anywhere}
.stops .stop small{font:600 12px/1.3 var(--body);color:var(--ink-3)}
.sn{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--azul);color:#fff;font:900 14px/1 var(--display)}
.stops .leg{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;padding:2px 0;font:700 13px/1.3 var(--body);color:var(--ink-2)}
.stops .leg .ms{justify-self:center;font-size:18px;color:var(--azul);position:relative;z-index:1;background:var(--surface);padding:2px 0}
.stops .leg em{display:block;font-style:normal;font-weight:800;color:var(--warn)}
.stoppin{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--azul);border:3px solid var(--surface);box-shadow:0 2px 6px rgba(0,0,0,.3);color:#fff;font:900 14px/1 var(--display)}
.stopn{font:900 14px/1 var(--display);fill:#fff}
.daysec>h2 .dayroute{margin-left:auto;align-self:center}
.pill.mine{padding:4px 4px 4px 14px;gap:8px}
.pill.mine>.ms{font-size:20px;color:var(--primary)}
.pagehead .btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}

/* ---------- Páginas ---------- */
.pagehead{margin:8px 0 16px}
.pagehead .eyebrow{font:900 12px/1 var(--body);color:var(--primary);text-transform:uppercase;letter-spacing:.14em}
.pagehead h1{margin:4px 0 0;font:1000 36px/1.05 var(--display);letter-spacing:-.03em}
.pagehead p{margin:6px 0 0;color:var(--ink-2);max-width:60ch}
.field{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 16px;border-radius:999px;background:var(--container);margin-bottom:12px;color:var(--ink-2)}
.field input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:16px;padding:12px 0;color:var(--ink)}
.field:focus-within{box-shadow:0 0 0 2px var(--primary)}
/* Lugares: hueco para que el buscador pueda subir arriba aunque haya pocos resultados */
#plist{min-height:calc(100dvh - 140px)}
.places{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px}
.place{position:relative;display:flex;flex-direction:column;text-align:left;background:var(--surface);border-radius:var(--r-m);box-shadow:var(--shadow-1);overflow:hidden;transition:box-shadow .25s}
html.anim .place{animation:rise .5s var(--ease-d) backwards;animation-delay:calc(min(var(--i,0),10) * 25ms)}
@media (hover:hover){.place:hover{box-shadow:var(--shadow-2)}}
/* Jorge 17-oct («ese hueco no, reduce y mete ahí 2 o 3 sitios»): con dos columnas o más, un lugar con foto ocupa el alto de 3 filas
   y a su lado se apilan los lugares sin foto, en vez de estirarse uno solo y quedar vacío. La foto se ajusta a ese alto, recortada
   sin deformarse. Con una columna (móvil), o sin consultas de contenedor, todo sigue como antes. */
.places{container-type:inline-size;grid-auto-flow:row dense}
@container (min-width:532px){
  .place.ph{grid-row:span 3}
  .place.ph .banner{flex:1 1 0;min-height:110px}
  .place.ph .banner img{height:100%;object-fit:cover}
}
.place .row{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:start;padding:14px}
.tile{width:44px;height:44px;display:grid;place-items:center;background:var(--gt);color:var(--g);border-radius:var(--r-m)}
.place b{display:block;font:800 16px/1.25 var(--display);overflow-wrap:anywhere}
.place .row>span:not(.tile)>span{display:block;margin-top:2px;font-size:13px;color:var(--ink-2);overflow-wrap:anywhere}
.place .up{margin-top:8px!important;display:inline-flex!important;align-items:center;gap:5px;font:800 12px/1 var(--body)!important;color:var(--primary)!important}
.place .up::before{content:"";width:7px;height:7px;background:currentColor;border-radius:50%}
/* Jorge (27-oct-2026): la estrella de favoritos va arriba a la derecha de la tarjeta del lugar, a la altura del icono; sobre la foto,
   en un círculo, como el marcador de los planes. Va al lado de la tarjeta (no dentro): la envoltura ocupa su sitio en la rejilla y
   la tarjeta y la estrella entran juntas (la entrada pasa de .place a .pfav-w) */
.pfav-w{position:relative;display:flex;flex-direction:column}
.pfav-w>.place{flex:1 1 auto}
.pfav-w:not(.ph)>.place .row{padding-right:52px}
html.anim .pfav-w{animation:rise .5s var(--ease-d) backwards;animation-delay:calc(min(var(--i,0),10) * 25ms)}
html.anim .pfav-w>.place{animation:none}
@container (min-width:532px){.pfav-w.ph{grid-row:span 3}}
.fav{position:absolute;top:14px;right:4px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--g,var(--primary));transition:background .2s}
.fav .bm{width:24px;height:24px;display:block}
.pfav-w.ph>.fav{top:8px;right:8px;width:40px;height:40px;background:var(--surface);box-shadow:var(--shadow-1)}
@media (hover:hover){.fav:hover{background:var(--gt,var(--container))}}
.fav.pop .bm{animation:pop .45s var(--spring)}
/* En los bloques de centros cívicos y Zonas Joven, el centro favorito lleva su estrella (solo se ve: se cambia en su ficha) */
.opentile span.favmark{position:absolute;top:12px;right:12px;color:var(--g,var(--primary))}
.favmark .bm{width:18px;height:18px;display:block}

/* ---------- Mis planes ---------- */
.next{position:relative;margin:0 0 22px;padding:20px;border-radius:28px;background:var(--primary-c);color:var(--on-primary-c)}
.next .save{top:10px;right:10px;color:var(--on-primary-c)}
.next h2{padding-right:30px}
.next .eyebrow{display:flex;align-items:center;gap:6px;font:800 13px/1 var(--body)}
.next .eyebrow .ms{font-size:18px}
.next h2{margin:10px 0 4px;font:900 24px/1.15 var(--display);text-wrap:balance}
.next p{margin:0 0 14px;opacity:.9}
.next .btn{margin-top:14px}

/* ---------- Cuenta ---------- */
.card{background:var(--surface);border-radius:var(--r-l);box-shadow:var(--shadow-1);padding:18px}
.profile{display:grid;gap:14px;margin-bottom:22px}
.profile .who{display:flex;align-items:center;gap:14px}
.avatar{width:56px;height:56px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:var(--on-primary);font:900 22px/1 var(--display)}
.avatar .ms{font-size:30px}
.profile .who div{flex:1;min-width:0}
.profile .who b{display:block;font:900 19px/1.2 var(--display);overflow-wrap:anywhere}
.profile .who small{display:block;color:var(--ink-3);overflow-wrap:anywhere}
.profile .btns{display:flex;flex-wrap:wrap;gap:8px}
.profile .btns .btn{flex:1 1 180px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.stats div{padding:10px;border-radius:16px;background:var(--container);text-align:center}
.stats b{display:block;font:900 22px/1 var(--display)}
.stats span{font-size:12px;font-weight:700;color:var(--ink-2)}
.group{margin:0 0 22px}
.group>:is(h2,h3){margin:0 0 4px;font:900 18px/1.2 var(--display)}
.group>p{margin:0 0 10px;color:var(--ink-2);font-size:14px}
.list{background:var(--surface);border-radius:var(--r-l);box-shadow:var(--shadow-1);overflow:hidden}
.lrow{display:grid;grid-template-columns:24px 1fr auto;gap:14px;align-items:center;width:100%;min-height:56px;padding:10px 16px;text-align:left;text-decoration:none;color:var(--ink)}
.lrow+.lrow{border-top:1px solid var(--outline-soft)}
@media (hover:hover){.lrow:hover{background:color-mix(in oklab,var(--ink) 4%,transparent)}}
.lrow>.ms:first-child{color:var(--ink-2)}
.lrow b{display:block;font:700 15px/1.3 var(--body)}
.lrow small{display:block;color:var(--ink-3);font-size:13px;line-height:1.35}
.lrow>.ms:last-child{color:var(--ink-3);font-size:20px}
.swbtn{display:grid;place-items:center;width:60px;height:48px;border-radius:999px}
.sw{position:relative;flex:none;width:52px;height:32px;border-radius:16px;background:var(--container-hi);border:2px solid var(--outline);transition:background .2s,border-color .2s}
/* ZIRPA-APP (Jorge 3-oct, «todo fluido»): el botón del interruptor se mueve y crece con transform (antes, left/width/height) */
.sw::after{content:"";position:absolute;top:50%;left:24px;width:22px;height:22px;border-radius:50%;background:var(--ink-3);transform:translate(-21px,-50%) scale(.7273);transition:transform .25s var(--ease),background .2s}
[aria-checked="true"] .sw{background:var(--primary);border-color:var(--primary)}
[aria-checked="true"] .sw::after{transform:translate(0,-50%);background:var(--on-primary)}
.select{display:flex;align-items:center;gap:10px;min-height:56px;padding:0 16px;border-radius:16px;border:1px solid var(--outline);background:var(--surface);color:var(--ink-2)}
.select select{flex:1;min-width:0;border:0;background:none;outline:none;font-size:16px;padding:14px 0;color:var(--ink)}
.select:focus-within{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
.likes{display:flex;flex-wrap:wrap;gap:8px}
.likes .chip[aria-pressed="true"]{background:var(--gt);color:var(--ink)}
.likes .chip .ms{color:var(--g)}
.protonote{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:var(--container);color:var(--ink-2);font-size:13px}

/* ---------- Hojas ---------- */
.scrim{position:fixed;inset:0;z-index:60;background:var(--scrim);animation:fade .3s ease both}
.sheet{position:fixed;z-index:61;left:0;right:0;bottom:0;max-height:94vh;max-height:94dvh;display:flex;flex-direction:column;background:var(--surface);border-radius:28px 28px 0 0;box-shadow:var(--shadow-2);animation:sheetup .5s var(--ease-d) both;overflow:hidden}
.sheet.noanim,.scrim.noanim{animation:none}
/* ZIRPA-APP (Jorge 6-oct): ficha apilada: la de detrás encoge con todas las esquinas redondeadas; la que se va pasa por encima */
/* ZIRPA-APP (Jorge 6-oct, opción 3): «‹ Volver a…» arriba a la izquierda; con la barra de título, solo la flecha */
.sheet-top .sback{pointer-events:auto;margin-right:auto;display:inline-flex;align-items:center;gap:2px;min-width:0;max-width:62%;height:40px;padding:0 14px 0 6px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-1);color:var(--primary);font:800 14px/1 var(--body)}
.sheet-top .sback .ms{font-size:24px;flex:none}
.sheet-top .sback .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sheet.titled .sheet-top .sback{max-width:none;padding:0 8px;box-shadow:none}
.sheet.titled .sheet-top .sback .lbl{display:none}
.sheet.leaving{pointer-events:none}
.sheet-ghost{position:absolute;z-index:2;overflow:hidden;pointer-events:none;background:var(--surface)}
.sheet.has-back .sheet-top{margin-bottom:0}
.sheet.has-back.has-hero:has(.sheet-top+.hero) .sheet-scroll{background-size:100% 140px;background-attachment:local}
.sheet.leaving{z-index:62;animation:none}
.grab{flex:none;display:grid;place-items:center;height:30px;cursor:grab;touch-action:none}
.grab::before{content:"";width:36px;height:4px;border-radius:2px;background:var(--outline)}
.sheet-scroll{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:0 20px calc(24px + var(--safe-b))}
.sheet-top{position:sticky;top:0;z-index:4;display:flex;justify-content:flex-end;gap:6px;padding:4px 0 0;margin-bottom:-44px;pointer-events:none}
.sheet-top .iconbtn{pointer-events:auto;background:var(--surface);box-shadow:var(--shadow-1)}
/* Al bajar, la X lleva su franja: el contenido pasa por debajo en vez de chocar con ella */
.sheet.scrolled .sheet-top::before{content:"";position:absolute;inset:-4px -20px -6px;background:var(--surface);box-shadow:0 1px 0 var(--outline-soft);z-index:-1}
/* ZIRPA-APP (petición de Jorge, 3-oct-2026): fichas con cabecera de color. Sin franja vacía al bajar: la barra solo aparece
   cuando el título grande se ha ido por debajo, con el color de la cabecera y el título en una línea. Misma altura siempre */
.sheet-top .st-title{flex:1;min-width:0;align-self:center;margin:0 10px 0 0;font:800 17px/1.25 var(--display);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;visibility:hidden}
.sheet.has-hero .sheet-top::before{content:"";position:absolute;inset:-4px -20px -6px;background:var(--gt,var(--surface));box-shadow:0 1px 0 var(--outline-soft);z-index:-1;opacity:0;transition:opacity .18s ease}
.sheet.has-hero.scrolled:not(.titled) .sheet-top .iconbtn{box-shadow:var(--shadow-1)}
.sheet.has-hero.titled .sheet-top::before{opacity:1}
.sheet.has-hero.titled .st-title{opacity:1;transform:none;visibility:visible}
/* En el móvil, la zona del asa (arriba de la X) queda siempre tapada: el texto no pasa por debajo del asa */
@media (max-width:899px){
  .sheet.has-hero.scrolled .sheet-top::after{content:"";position:absolute;left:-20px;right:-20px;top:-6px;height:28px;background:var(--surface);z-index:-1;transition:background-color .18s ease}
  .sheet.has-hero.titled .sheet-top::after{background:var(--gt,var(--surface))}
}
/* ZIRPA-APP (Jorge 3-oct 22:37): en la ficha, la zona del asa va del mismo color que la cabecera (antes quedaba una franja blanca encima).
   Solo cuando la cabecera de color es lo primero de la ficha; con foto arriba se queda como estaba.
   (Jorge 5-oct: también en escritorio, donde quedaba una franja oscura encima) */
.sheet.has-hero:has(.sheet-top+.hero) .sheet-scroll{background:linear-gradient(var(--gt,var(--container)),var(--gt,var(--container))) 0 0/100% 48px no-repeat}
@media (max-width:899px){
  .sheet.has-hero.scrolled:has(.sheet-top+.hero) .sheet-top::after{background:var(--gt,var(--container))}
}
@media (prefers-reduced-motion:reduce){.sheet-top .st-title,.sheet.has-hero .sheet-top::before,.sheet.has-hero .sheet-top::after{transition:none}}
/* La cabecera conserva el ancho anterior y deja sitio a la X. */
.sheet .hero,.sheet h2.plain,.sheet h2.plain+p{padding-right:52px}
.hero{position:relative;margin:0 -20px 0;padding:18px 72px 18px 20px;background:var(--gt,var(--container))}
.hero .kchip{font-size:13px;padding:4px 10px 4px 7px;background:var(--surface)}
.hero .kchip .ms{font-size:18px}
.hero h2{margin:12px 0 0;font:900 clamp(28px,7.5vw,32px)/1.12 var(--display);color:var(--ink);text-wrap:pretty;overflow-wrap:anywhere;letter-spacing:-.02em}
.hero .cenefa{display:none}
.media{position:relative;margin:0 -20px;display:grid;place-items:center;overflow:hidden;background:var(--container)}
.media .blur{position:absolute;inset:-20px;width:calc(100% + 40px);height:calc(100% + 40px);object-fit:cover;filter:blur(26px) saturate(1.1);opacity:.55}
.media .full{position:relative;display:block;max-width:100%;max-height:58vh;max-height:58dvh;width:auto;height:auto;object-fit:contain}
.media+.hero,.gal+.hero{padding-right:20px}
/* ZIRPA-APP (Jorge 17-oct-2026): el autor de la foto, con su enlace, encima de la esquina de abajo; varias fotos en fila */
.media .cred{position:absolute;right:8px;bottom:8px;max-width:calc(100% - 16px);margin:0;padding:3px 9px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-size:11px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.media .cred a{color:inherit;text-decoration:underline;text-underline-offset:2px;text-decoration-color:rgba(255,255,255,.5)}
.gal{display:flex;gap:4px;height:clamp(220px,36vh,340px);margin:0 -20px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;background:var(--container)}
.gal::-webkit-scrollbar{display:none}
.gal>.media{flex:0 0 auto;max-width:88%;height:100%;margin:0;scroll-snap-align:start}
.gal>.media:last-child{scroll-snap-align:end}
.gal .blur{display:none}
.gal .full{width:auto;height:100%;max-width:100%;max-height:none;object-fit:cover}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.facts>.fact{flex:1 1 calc(50% - 4px)}
.facts>.fact.wide{flex-basis:100%}
.fact{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;padding:12px 14px;background:var(--container);border-radius:16px;min-width:0}
.fact>.ms{color:var(--primary);font-size:20px;margin-top:1px}
.fact small{display:block;font:800 12px/1.2 var(--body);color:var(--ink-3)}
.fact span:not(.ms){display:block;margin-top:3px;font:700 14px/1.35 var(--body);overflow-wrap:anywhere}
.fact.wide{grid-column:1/-1}
.desc{font-size:16px;line-height:1.6;max-width:62ch;margin:0 0 16px}
.desc a{color:var(--primary);font-weight:700}
/* Descripción larga (Jorge 18-oct): 3 líneas y una flecha para desplegarla; «Ver ficha completa» va a la página que se comparte */
.descx .desc{margin-bottom:4px}
.descx:not(.open) .desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.descbar{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;margin:0 0 14px -12px}
.descbar .btn{min-height:44px;font-size:14px}
.descmore .ms{transition:transform .2s}.descx.open .descmore .ms{transform:rotate(180deg)}
@media (prefers-reduced-motion:reduce){.descmore .ms{transition:none}}
.notice{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:12px 14px;margin:0 0 16px;border-radius:16px;background:var(--warn-c);color:var(--warn);font-size:14px}
.notice p{margin:0;color:var(--ink)}
.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 22px}
.actions .btn{min-height:48px;padding:10px 14px}
.actions .btn.wide{grid-column:1/-1}
/* Si queda un botón suelto en la última fila, ocupa todo el ancho */
.actions:not(.n3) .btn:last-child:nth-child(even){grid-column:1/-1}
@media (max-width:599px){.actions.n3 .btn:last-child:nth-child(even){grid-column:1/-1}}
.fact.muted span{color:var(--ink-2);font-weight:600}
.edit-actions{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 22px;padding:12px;border-radius:var(--r-l);background:color-mix(in oklab,var(--azul) 10%,transparent)}
.edit-actions .btn{color:var(--azul);border-color:color-mix(in oklab,var(--azul) 40%,transparent);flex:1 1 140px}
.sub{margin:24px 0 10px;display:flex;align-items:center;gap:10px}
.sub h3{margin:0;font:900 12px/1 var(--body);text-transform:uppercase;letter-spacing:.14em;white-space:nowrap;color:var(--ink-2)}
.minimap{height:220px;border-radius:var(--r-l)}
/* ZIRPA-APP (Jorge 3-oct, 22:22): el minimapa es su propio contexto de apilado. MapLibre pone «Usa dos dedos…» con
   z-index 99999 (y sus controles con 2): sin esto, al deslizar la ficha con el dedo sobre el mapa, ese velo, la atribución
   y la sombra pintaban encima de la barra de Guardar / Cómo llegar. Dentro del mapa todo sigue igual y se puede tocar */
.minimap{isolation:isolate;z-index:0;contain:paint}
/* Línea de la fuente al final de la ficha del plan; el nombre enlaza a la ficha oficial */
/* Cartel de la fuente (Arena Rock): entero, sin recortar, centrado y como mucho de media pantalla de alto */
.poster{margin:16px 0 0;text-align:center}
.poster figcaption{margin-top:6px;font-size:12px;color:var(--ink-3)}
.poster img{display:inline-block;width:auto;max-width:100%;height:auto;max-height:min(48vh,440px);border-radius:16px;border:1px solid var(--outline);background:var(--container)}
.srcline{margin:22px 0 0;color:var(--ink-3);font-size:13px}
.srcline a{color:var(--ink-2);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--outline)}
.near ul{list-style:none;margin:0;padding:0}
.near li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--outline-soft);font-size:14px}
.near li:last-child{border-bottom:0}
.near li>.ms{color:var(--ink-3)}
.near b{font-weight:700;overflow-wrap:anywhere}
.near small{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.hours{list-style:none;margin:0;padding:0}
.hours li{display:flex;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid var(--outline-soft);font-variant-numeric:tabular-nums}
.hours li span:first-child{text-transform:capitalize}
.hours li.off{color:var(--ink-3)}
.mini-list{display:grid;gap:8px}
.minirow{display:grid;grid-template-columns:62px 1fr;gap:12px;align-items:center;width:100%;text-align:left;padding:10px 12px;border-radius:var(--r-l);background:var(--container);transition:background .2s}
@media (hover:hover){.minirow:hover{background:var(--container-hi)}}
.minirow b{font:800 14px/1.1 var(--display);text-transform:capitalize}
.minirow b small,.minirow.prow b small{display:block;margin-top:3px;font:700 12px/1 var(--body);color:var(--ink-2);text-transform:lowercase}
.minirow span:not(.ms){font:700 14px/1.3 var(--body);overflow-wrap:anywhere}
/* ZIRPA-APP (Jorge 6-oct): la fecha que estás viendo, marcada en la lista */
.fechas .minirow[aria-current]{background:color-mix(in oklab,var(--primary) 18%,var(--container));box-shadow:inset 0 0 0 1.5px var(--primary);cursor:default}
.fechas .minirow em{margin-left:8px;font:800 11px/1 var(--body);font-style:normal;letter-spacing:.06em;text-transform:uppercase;color:var(--primary)}
/* ZIRPA-APP (Jorge 6-oct): las fechas, en un carrusel horizontal; la que ves va en color, y mantener pulsada una la guarda */
.fcar{display:flex;gap:8px;overflow-x:auto;margin:0 -20px;padding:2px 20px 8px;scroll-padding:0 20px;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.fcar::-webkit-scrollbar{display:none}
.fday,.hday{position:relative;flex:none;min-width:74px;max-width:120px;display:grid;justify-items:center;align-content:start;gap:1px;padding:9px 10px 10px;border-radius:var(--r-l);background:var(--container);scroll-snap-align:center;text-align:center;transition:transform .2s,background .2s;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.fday small,.hday small{font:800 11px/1.2 var(--body);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2)}
.fday b,.hday b{font:900 24px/1.05 var(--display);color:var(--ink)}
.fday span,.hday span{margin-top:4px;font:800 13px/1.2 var(--body);color:var(--ink);font-variant-numeric:tabular-nums}
.fday em{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 11px/1.3 var(--body);font-style:normal;color:var(--ink-2)}
.fday[aria-current],.hday[aria-current]{background:var(--primary);cursor:default}
.fday[aria-current] :is(small,b,span,em,.ms),.hday[aria-current] :is(small,b,span,em,.ms){color:var(--on-primary)}
/* ZIRPA-APP (Jorge 7-oct): tira de fechas de un sitio (botones que se parecen a los días de la ficha) y la lista del día elegido */
.hday.pdt{border:0;font:inherit;color:inherit;cursor:pointer;text-align:center}
.hday.pdt[aria-current]{cursor:default}
.pdl[hidden]{display:none}
.pdls{margin-top:4px}
@media (hover:hover){.hday.pdt:not([aria-current]):hover{background:var(--container-hi)}}
/* ZIRPA-APP (Jorge 7-oct): carruseles con el ratón (6-carruseles.js): se arrastran, y en escritorio se ve que se deslizan */
.canscroll{cursor:grab}
.canscroll :is(button,a){cursor:pointer}
.dragging{scroll-snap-type:none!important;scroll-behavior:auto!important;cursor:grabbing!important;user-select:none}
.dragging *{pointer-events:none}
@media (hover:hover) and (pointer:fine){
  .fcar,.strip,.pdays,.quick,.suggest{scrollbar-width:thin;scrollbar-color:var(--outline) transparent}
  .fcar::-webkit-scrollbar,.strip::-webkit-scrollbar,.pdays::-webkit-scrollbar,.quick::-webkit-scrollbar,.suggest::-webkit-scrollbar{display:block;height:6px}
  .fcar::-webkit-scrollbar-thumb,.strip::-webkit-scrollbar-thumb,.pdays::-webkit-scrollbar-thumb,.quick::-webkit-scrollbar-thumb,.suggest::-webkit-scrollbar-thumb{background:var(--outline);border-radius:3px}
  .fcar::-webkit-scrollbar-track,.strip::-webkit-scrollbar-track,.pdays::-webkit-scrollbar-track,.quick::-webkit-scrollbar-track,.suggest::-webkit-scrollbar-track{background:transparent}
}
.fday.pressing{transform:scale(.94)}
.hday{cursor:default}
.hday span{font-size:12px;line-height:1.3}
.hday.off :is(b,span){color:var(--ink-3)}
.fday.saved-flash{box-shadow:0 0 0 2px var(--primary)}
@media (hover:hover){.fday:not([aria-current]):hover{background:var(--container-hi)}}
/* ZIRPA-APP (Jorge 6-oct, opción A): plan y lugar se distinguen. El plan, con la fecha como hoja de calendario;
   el lugar, con el mapa arriba, sin franja de color y con sus planes como mini tarjetas con su raya */
.hero .hrow{display:flex;gap:14px;align-items:center;margin-top:10px}
.hero .hrow h2{margin:0;flex:1;min-width:0}
/* ZIRPA-APP (Jorge 19-oct): el lápiz de edición rápida junto al título, solo en la cuenta del equipo */
.hero .zpen{flex:none;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--primary-c);color:var(--on-primary-c);cursor:pointer}
.hero .zpen .ms{font-size:22px}
.leaf{flex:none;width:58px;border-radius:var(--r-m);overflow:hidden;text-align:center;background:var(--surface);box-shadow:var(--shadow-1)}
.leaf i{display:block;font:900 11px/1 var(--body);font-style:normal;letter-spacing:.08em;text-transform:uppercase;padding:5px 0 4px;background:var(--primary);color:var(--on-primary,#fff)}
.leaf b{display:block;font:900 26px/1 var(--display);color:var(--ink);padding-top:5px}
.leaf small{display:block;font:800 11px/1 var(--body);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);padding:2px 0 6px}
.pmap{height:180px;margin:0 -20px;border-radius:0}
.pmap .maplibregl-ctrl-top-right{right:auto;left:0}
.pmap .ctl{right:auto;left:12px}
.sheet[data-kind="place"] .hero{background:none;padding-top:16px;padding-bottom:6px}
.sheet[data-kind="place"] .hero .kchip{background:var(--gt);color:var(--g)}
.sheet[data-kind="place"].has-hero .sheet-top::before,.sheet[data-kind="place"].has-hero.titled .sheet-top::after{background:var(--surface)}
.sheet[data-kind="place"].has-hero:has(.sheet-top+.hero) .sheet-scroll{background:none}
.minirow.prow{position:relative;overflow:hidden;background:var(--surface);box-shadow:inset 0 0 0 1px var(--outline-soft);padding-left:16px}
.minirow.prow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--g)}
.minirow.prow small{display:flex;align-items:center;gap:4px;margin-top:2px;font:700 12px/1.3 var(--body);color:var(--ink-2)}
.minirow.prow small .ms{font-size:15px;color:var(--g)}
@media (hover:hover){.minirow.prow:hover{background:var(--container)}}
.sheet h2.plain{margin:6px 60px 2px 0;font:900 26px/1.1 var(--display)}
.sheet-foot{position:sticky;bottom:calc(-24px - var(--safe-b));display:flex;gap:8px;margin:0 -20px calc(-24px - var(--safe-b));padding:12px 20px calc(12px + var(--safe-b));background:var(--surface)}
/* ZIRPA-APP (Jorge 6-oct): fondo liso tras los botones de abajo (con degradado se veían los botones de dentro de la ficha); el difuminado va por encima */
.sheet-foot::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:16px;background:linear-gradient(to top,var(--surface),transparent);pointer-events:none}
.sheet-foot .btn{flex:1}
.sheet-foot .btn.text{flex:none;padding:8px 12px}

/* ---------- Búsqueda ---------- */
/* ZIRPA-APP (Jorge 3-oct, «todo fluido»): al cerrar, el buscador se va con un fundido (4-ui.js ghostOut, clase .search-out) */
:is(.search,.search-out){position:fixed;inset:0;z-index:70;display:flex;flex-direction:column;background:var(--bg);animation:fade .2s var(--ease-d) both;overflow:hidden;overscroll-behavior:none;isolation:isolate}
:is(.search,.search-out) .bar{flex-shrink:0;display:flex;align-items:center;gap:6px;margin:calc(8px + var(--safe-t)) 12px 6px;padding:0 4px 0 16px;border-radius:28px;background:var(--container);color:var(--ink-2)}
:is(.search,.search-out) .bar input::-webkit-search-cancel-button{display:none}
:is(.search,.search-out) .bar input{flex:1;min-width:0;border:0;background:none;outline:none;font:600 17px/1.2 var(--body);padding:16px 4px;color:var(--ink)}
:is(.search,.search-out) .res-wrap{flex:1;min-height:0;overflow:auto;padding:4px 16px max(40px,env(safe-area-inset-bottom,0px));overscroll-behavior:none;touch-action:pan-y;-webkit-overflow-scrolling:touch}
@media(max-width:899px){:is(.search,.search-out){top:var(--search-top,0px);bottom:auto;height:var(--search-height,100dvh)}}
:is(.search,.search-out) h4{margin:18px 0 6px;font:900 12px/1 var(--body);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-2)}
.res{display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:center;width:100%;text-align:left;padding:8px;border-radius:16px}
.res:hover,.res.sel{background:var(--container)}
.res b{display:block;font:700 15px/1.3 var(--body);overflow-wrap:anywhere}
.res small{display:block;color:var(--ink-3);font-size:13px;overflow-wrap:anywhere}
.res mark{background:var(--primary-c);color:var(--on-primary-c);border-radius:3px}
.hint{color:var(--ink-3);padding:16px 4px 0;margin:0}
.suggest{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}

/* ---------- Afinar ---------- */
.fq{margin:22px 0 10px}
.fq:first-child{margin-top:4px}
.fq :is(h3,h4){margin:0;font:900 17px/1.25 var(--display);color:var(--ink)}
.fq p{margin:3px 0 0;font-size:13px;color:var(--ink-3)}
.cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.cat-opt{display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;min-height:48px;padding:6px 10px 6px 6px;border-radius:var(--r-l);text-align:left;background:var(--container);border:1.5px solid transparent;transition:background .2s,border-color .2s,opacity .2s;font:700 13px/1.25 var(--body)}
.cat-opt .t{width:32px;height:32px;display:grid;place-items:center;background:var(--gt);color:var(--g);border-radius:var(--r-m);transition:background .2s,color .2s}
.cat-opt .t .ms{font-size:19px}
.cat-opt .l{min-width:0;overflow-wrap:anywhere}
.cat-opt small{font:800 12px/1 var(--body);color:var(--ink-3);font-variant-numeric:tabular-nums}
.cat-opt.zero{opacity:.75}
/* Tipos sin planes: plegados con animación de altura (grid 0fr → 1fr) */
/* ZIRPA-APP (Jorge 3-oct, «todo fluido»): se abre al momento y lo de dentro entra con opacity y transform (antes se
   animaba grid-template-rows, que recalcula la hoja en cada fotograma) */
.zeros{display:grid;grid-template-rows:0fr;opacity:0}
.zeros.open{grid-template-rows:1fr;opacity:1;margin-top:6px}
.zeros.open>.zin{animation:peek .3s var(--ease-d) both}
.zeros>.zin{min-height:0;overflow:hidden}
.zerobtn{display:flex;align-items:center;gap:6px;margin-top:6px;padding:8px 10px 8px 6px;border-radius:12px;font:700 13px/1 var(--body);color:var(--ink-3)}
.zerobtn:hover{background:var(--container);color:var(--ink-2)}
.zerobtn .ms{font-size:20px;transition:transform .35s var(--ease)}
.zerobtn[aria-expanded="true"] .ms{transform:rotate(180deg)}
@media (prefers-reduced-motion:reduce){.zerobtn .ms{transition:none}.zeros.open>.zin{animation:none}}
.cat-opt[aria-pressed="true"]{opacity:1;border-color:var(--g);background:var(--gt)}
.cat-opt[aria-pressed="true"] .t{background:var(--g);color:var(--surface)}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg .chip{min-height:40px}

/* ---------- Formularios (edición y gestión) ---------- */
.form{display:grid;gap:14px;margin-top:14px}
.form .two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fl{display:grid;gap:6px;min-width:0}
.fl>span{font:800 13px/1.2 var(--body);color:var(--ink-2)}
.fl>span small{font-weight:600;color:var(--ink-3)}
.fl input,.fl select,.fl textarea{width:100%;min-width:0;min-height:56px;padding:14px 16px;border-radius:var(--r-m);border:1px solid var(--outline);background:var(--surface);color:var(--ink);font-size:16px;outline:none}
.fl textarea{min-height:96px;resize:vertical;line-height:1.45}
.fl input:focus,.fl select:focus,.fl textarea:focus{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}
.fl .cnt{justify-self:end;font:700 12px/1 var(--body);color:var(--ink-3)}
.fl.bad input,.fl.bad textarea{border-color:#C0362C}
.upl{display:grid;gap:10px;justify-items:start}
.upl img{max-width:100%;max-height:260px;border-radius:var(--r-l);background:var(--container)}
.formnote{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:color-mix(in oklab,var(--azul) 10%,transparent);color:var(--ink-2);font-size:13px;line-height:1.45}
.formnote .ms{color:var(--azul);font-size:20px}

/* ---------- Gestión ---------- */
/* Pestañas de Gestión: cuatro a lo ancho, sin saltos de línea */
.gtabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 -16px 16px;border-bottom:1px solid var(--outline-soft)}
.gtab{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:10px 2px 12px;font:700 13px/1.1 var(--body);color:var(--ink-2);white-space:nowrap}
.gtab>span{display:inline-flex;align-items:center;gap:4px}
.gtab .ms{font-size:22px}
.gtab .n{font:800 11px/1 var(--body);padding:2px 6px;border-radius:8px;background:var(--azul);color:#fff}
.gtab[aria-pressed="true"]{color:var(--azul);font-weight:900}
.gtab[aria-pressed="true"]::after{content:"";position:absolute;left:18%;right:18%;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--azul)}
@media (hover:hover){.gtab:hover{background:color-mix(in oklab,var(--ink) 5%,transparent)}}
@media (min-width:600px){.gtabs{margin:0 0 18px}.gtab{flex-direction:row;justify-content:center;gap:8px;padding:14px 4px;font-size:14px}}
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));gap:10px;margin-bottom:22px}
.kpi{position:relative;display:grid;gap:4px;align-content:start;text-align:left;padding:14px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-1)}
.kpi b{font:1000 30px/1 var(--display);font-variant-numeric:tabular-nums}
.kpi span{font:700 13px/1.3 var(--body);color:var(--ink-2)}
.kpi small{font:800 12px/1.2 var(--body);color:var(--ink-3)}
.kpi.warn b{color:var(--warn)}
.kpi .bar{height:6px;border-radius:3px;background:var(--container);overflow:hidden}
.kpi .bar i{display:block;height:100%;background:var(--good)}
.qrow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--outline-soft)}
.qrow b{display:block;font:800 15px/1.3 var(--body);overflow-wrap:anywhere}
.qrow small{display:block;font-size:13px;color:var(--ink-3);overflow-wrap:anywhere}
.qrow .issues{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.qrow .issues span{padding:1px 7px;border-radius:6px;background:var(--warn-c);color:var(--warn);font:800 11px/1.5 var(--body)}
.rule{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;padding:14px;border-bottom:1px solid var(--outline-soft)}
.rule b{display:block;font:800 15px/1.35 var(--body)}
.rule .if{font:700 14px/1.45 var(--body);color:var(--ink-2)}
.rule .if code{font:800 13px/1 var(--body);padding:2px 6px;border-radius:6px;background:var(--container);color:var(--ink)}
.rule small{display:block;margin-top:4px;color:var(--ink-3);font-size:12px}
.rule .ctrls{display:flex;gap:4px;align-items:center}
.rule.sys{background:color-mix(in oklab,var(--container) 50%,transparent)}
.preview{margin-top:6px;padding:12px 14px;border-radius:16px;background:var(--container);font-size:13px;color:var(--ink-2)}
.preview b{color:var(--ink)}
.preview ul{margin:6px 0 0;padding-left:18px}
.log{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:start;padding:12px 14px;border-bottom:1px solid var(--outline-soft)}
.log>.ms{color:var(--azul);margin-top:2px}
.log b{display:block;font:800 14px/1.35 var(--body);overflow-wrap:anywhere}
.log small{display:block;color:var(--ink-3);font-size:12px;overflow-wrap:anywhere}
@media (max-width:599px){.log{grid-template-columns:28px 1fr;gap:4px 10px}.log>.btn{grid-column:2;justify-self:start;margin-left:-10px}}

/* ---------- Ayuda ---------- */
.sosbig{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:16px;border-radius:var(--r-l);background:#B3261E;color:#fff;text-decoration:none;margin:14px 0 10px}
.sosbig strong{font:1000 34px/1 var(--display)}
.sosbig b{display:block;font:900 16px/1.2 var(--display)}
.sosbig small{display:block;opacity:.9}
.sosbig .call{padding:8px 14px;border-radius:16px;background:rgba(255,255,255,.2);font:900 14px/1 var(--body)}
.telgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.telgrid a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-radius:16px;background:var(--container);text-decoration:none}
.telgrid b{display:block;font:1000 20px/1 var(--display)}
.telgrid small{display:block;font:700 12px/1.3 var(--body);color:var(--ink-2)}
.telgrid .ms{color:var(--ink-3)}
.violet{margin-top:18px;padding:16px;border-radius:var(--r-l);background:#F1E4FB;color:#2E1146}
:root[data-theme="dark"] .violet{background:#3A2552;color:#F1E4FB}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .violet{background:#3A2552;color:#F1E4FB}}
.violet h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;font:900 19px/1.2 var(--display)}
.violet p{margin:0 0 10px;font-size:14px}
.hc{display:grid;gap:8px;padding:12px 0;border-top:1px solid color-mix(in oklab,currentColor 18%,transparent)}
.hc h4{margin:0;font:900 15px/1.2 var(--display)}
.hc p{margin:0;font-size:13px;opacity:.85}
.hc .row{display:flex;flex-wrap:wrap;gap:8px}
.hc a{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:16px;background:color-mix(in oklab,currentColor 12%,transparent);font:800 14px/1.2 var(--body);text-decoration:none}
.hc a .ms{font-size:18px}
.howto{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.howto li{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:start;padding:12px;border-radius:16px;background:var(--container)}
.howto li .ms{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--primary-c);color:var(--on-primary-c);font-size:22px}
.howto b{display:block;font:800 15px/1.3 var(--body)}
.howto span{font-size:13px;color:var(--ink-2)}
.helpsrc{margin-top:18px;font-size:12px;color:var(--ink-3);display:grid;gap:4px}

/* ---------- Aviso emergente ---------- */
.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 16px + var(--safe-b));z-index:80;display:flex;align-items:center;gap:12px;width:max-content;max-width:min(560px,calc(100% - 32px));min-height:48px;padding:6px 6px 6px 16px;border-radius:var(--r-xs);font-size:14px;background:var(--ink);color:var(--bg);font-weight:700;box-shadow:var(--shadow-2);transform:translateX(-50%);animation:toast .4s var(--ease) both}
.toast button{flex:none;padding:10px 12px;border-radius:999px;color:var(--inv-primary);font-weight:900}
html.bars-off .toast{bottom:calc(16px + var(--safe-b))}
/* Con el botón flotante («Plan nuevo», «Lugar nuevo») el aviso va por encima, para no taparlo */
html.has-fab .toast{bottom:calc(var(--nav-h) + var(--safe-b) + 88px)}
html:is(.has-fab,.has-sfab).bars-off .toast{bottom:calc(var(--safe-b) + 88px)}

/* ---------- Móviles estrechos: que quepa todo arriba sin cortar el logo ---------- */
@media (max-width:419px){
  .topbar{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px));gap:2px}
  .logo{gap:8px}
  .logo .mark{width:36px;height:36px}
  .logo b{font-size:27px}
  .logo small{font-size:8.5px;letter-spacing:.12em}
}
@media (max-width:339px){
  .logo small{display:none}
}

/* ---------- Tableta y escritorio ---------- */
@media (min-width:600px){
  .dayhead :is(h1,.h1){font-size:50px}
  .actions.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:900px){
  :root{--nav-h:0px;--top-h:72px}
  .bottomnav{display:none}
  .topbar{gap:8px;padding-left:24px;padding-right:20px;border-bottom:1px solid var(--outline-soft)}
  .logo .mark{width:46px;height:46px}
  .logo b{font-size:34px}
  .logo small{font-size:10.5px}
  .tabs{display:flex;gap:2px;margin-left:22px}
  .tab{position:relative;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 14px;border-radius:999px;font:800 15px/1 var(--body);color:var(--ink-2);transition:background .2s,color .2s;white-space:nowrap}
  .tab .ms{font-size:20px}
  .tab:hover{background:color-mix(in oklab,var(--ink) 6%,transparent)}
  .tab[aria-current="page"]{background:var(--primary-c);color:var(--on-primary-c)}
  .tab .badge{position:static;margin-left:2px}
  /* Pilares: sin fondo si no estás en ella (si no, parecen dos pestañas activas); solo el icono de color */
  .tab.fest .ms,.tab.fest .msvg{color:var(--fest)}
  .tab.fest:hover{background:var(--fest-c);color:var(--on-fest-c)}
  .tab.fest[aria-current="page"]{background:var(--fest);color:var(--fest-c)}
  .tab.fest[aria-current="page"] .ms,.tab.fest[aria-current="page"] .msvg{color:inherit}
  .tab.gestion{color:var(--azul)}
  .tab.gestion[aria-current="page"]{background:color-mix(in oklab,var(--azul) 16%,transparent)}
  .searchpill{display:flex;align-items:center;gap:10px;height:44px;width:clamp(180px,22vw,300px);padding:0 10px 0 14px;border-radius:999px;background:var(--surface);border:1.5px solid var(--outline);color:var(--ink-2);font:600 14px/1 var(--body);transition:border-color .2s,box-shadow .2s}
  .searchpill:hover{border-color:var(--ink-3);box-shadow:var(--shadow-1)}
  .searchpill .ms{color:var(--primary)}
  #searchbtn{display:none}
  .view{padding:24px 32px 0}
  .main{padding-bottom:40px}
  .quick{margin-bottom:18px}
  .thumb{width:96px}
  .sheet{left:auto;top:12px;bottom:12px;right:12px;width:min(540px,92vw);max-height:none;border-radius:var(--r-xl);animation:sheetin .5s var(--ease-d) both}
  .grab{display:none}
  .sheet-top{padding-top:16px}
  .sheet-scroll{padding-top:0}
  .hero{padding-top:22px}
  :is(.search,.search-out){inset:10vh auto auto 50%;width:min(640px,92vw);max-height:76vh;transform:translateX(-50%);border-radius:28px;box-shadow:var(--shadow-2);background:var(--surface)}
  .search-scrim{position:fixed;inset:0;z-index:69;background:var(--scrim);animation:fade .2s both}
  .toast{bottom:28px}
  html.has-fab .toast{bottom:92px}
  .mapview .map{height:calc(100vh - var(--top-h));height:calc(100dvh - var(--top-h))}
  .view.mapview{padding:0;max-width:none}
  .mapday{left:auto;right:16px;bottom:16px;width:420px}
  .map.real~.mapday{bottom:40px}
  /* Ventanita del sitio: grande y junto a su chincheta (la coloca anchorPeek en 3-views.js) */
  .mapday.anch,html .map.real~.mapday.anch{position:fixed;right:auto;bottom:auto;z-index:6;max-width:460px}
  .mapday.anch #peek .peek{max-height:min(64vh,560px);padding:18px;box-shadow:var(--shadow-3,var(--shadow-2));border:1px solid var(--outline-soft)}
  .mapday.anch #peek .peek h3{font-size:21px}
  .mapday.anch #peek .peek header p,.mapday.anch #peek .addr{font-size:15px}
  .mapday.anch #peek .peekrow b{font-size:17px}
  .mapday.anch #peek .peekrow span:not(.ms){font-size:16px}
  .mapday.anch #peek .peekrow{grid-template-columns:56px 1fr;padding:11px 6px}
  .mapview .note{display:block}
  .fabs{bottom:24px;right:24px}
  .editbar{top:calc(var(--top-h) + var(--band));padding:8px 24px}
}
@media (min-width:900px) and (max-width:1279px){
  .searchpill{display:none}
  #searchbtn{display:grid}
  .tabs{margin-left:10px}
  .tab{padding:0 12px;gap:6px;font-size:14px}
  .tab:not(.fest) .ms{display:none}
}
@media (min-width:1200px){
  #v-fiestas,#v-halloween{max-width:1280px}
  .pilar-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:0 36px;align-items:start}
  .pilar-grid .pilar-hero{margin-top:0}
  #v-gestion{max-width:1100px}
  /* Cuenta en dos columnas: perfil arriba y los apartados repartidos */
  #v-cuenta{max-width:1120px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;align-items:start}
  #v-cuenta>.pagehead,#v-cuenta>.profile,#v-cuenta>.sub,#v-cuenta>.howto{grid-column:1/-1}
  /* Mis planes: el próximo plan fijo a la izquierda y los días a la derecha */
  #v-planes{max-width:1180px}
  .saved-split{display:grid;grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:0 36px;align-items:start}
  .saved-split>aside{position:sticky;top:calc(var(--top-h) + var(--band) + 16px)}
  .saved-split>aside .next{margin-top:0}
}
@media (min-width:900px){#v-lugares{max-width:1280px}}
/* Tableta: las hojas de abajo no se estiran de lado a lado */
@media (min-width:600px) and (max-width:899px){.sheet{max-width:640px;margin:0 auto}}
/* Agenda en columnas: días y filtros a la izquierda, la agenda pegada a ellos y, en pantallas grandes, el mapa a la derecha */
.side{display:none}
@media (min-width:1024px){
  .agenda-split{display:grid;grid-template-columns:288px minmax(0,1fr);gap:0 28px;padding:20px 28px 0;align-items:start}
  .agenda-left{position:sticky;top:calc(var(--top-h) + var(--band) + 16px);max-height:calc(100vh - var(--top-h) - var(--band) - 32px);max-height:calc(100svh - var(--top-h) - var(--band) - 32px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--outline-soft) transparent;padding:0 6px 20px 0;margin-right:-6px}
  .agenda-left .ribbon{margin-top:0}
  .agenda-left .days{gap:2px}
  .agenda-left .day .dn{font-size:19px}
  .agenda-col{min-width:0}
  .agenda-col>.dayhead{margin-top:0}
  .filters.inline{padding:0 2px}
  .filters.inline .fq:first-child{margin-top:16px}
  .filters.inline .fq :is(h3,h4){font-size:16px}
  .filters.inline .cats{grid-template-columns:1fr;gap:4px}
  .filters.inline .cat-opt{min-height:44px}
  .filters.inline .seg .chip{min-height:36px}
}
@media (min-width:1024px){
  /* ZIRPA-APP: el separador entre agenda y mapa. Ocupa el hueco de 28 px (44 px para el ratón o el dedo) y lleva el
     asa de Material 3: una píldora que se marca al pasar por encima, con el foco del teclado y mientras se arrastra */
  .rd-split{position:absolute;z-index:3;top:16px;bottom:16px;left:-36px;width:44px;display:grid;place-items:center;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:999px;outline:none}
  .rd-split::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background:var(--outline-soft);opacity:0;transition:opacity .2s var(--ease)}
  .rd-split::after{content:"";width:4px;height:40px;border-radius:2px;background:var(--outline);opacity:.55;transition:width .2s var(--ease),height .2s var(--ease),background-color .2s var(--ease),opacity .2s var(--ease)}
  .rd-split:hover::before,.rd-split.on::before,.rd-split:focus-visible::before{opacity:1}
  .rd-split:hover::after{width:6px;height:56px;opacity:1;background:var(--ink-2)}
  .rd-split.on::after{width:6px;height:72px;opacity:1;background:var(--primary)}
  .rd-split:focus-visible::after{width:6px;height:56px;opacity:1;background:var(--primary);box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--primary)}
  html.rd-dragging,html.rd-dragging *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}
  html.rd-dragging .agenda-col{pointer-events:none}
}
@media (min-width:1024px) and (max-width:1279px){.rd-split{left:-32px}}
/* Tableta en horizontal (1024–1279): filtros, agenda y mapa a la vez; el mapa se estira con el tirador como en escritorio (Jorge 15-oct) */
@media (min-width:1024px) and (max-width:1279px){
  .agenda-split{--rd-split:.34;--rd-cw:calc(100% - 320px);grid-template-columns:300px minmax(0,1fr) max(240px,min(calc(var(--rd-cw) * var(--rd-split-user,var(--rd-split))),calc(var(--rd-cw) - 340px)));gap:0 20px;padding:20px 0 0 20px}
  .side{display:block;position:sticky;top:calc(var(--top-h) + var(--band));height:calc(100vh - var(--top-h) - var(--band));height:calc(100svh - var(--top-h) - var(--band));margin-top:-20px;padding:16px 16px 16px 0}
  .side .map{height:100%;border-radius:var(--r-xl)}
  .tab-split{--rd-split:.34;--rd-cw:calc(100% - 260px);display:grid;grid-template-columns:minmax(0,1fr) max(240px,min(calc(var(--rd-cw) * var(--rd-split-user,var(--rd-split))),calc(var(--rd-cw) - 340px)));gap:0 20px;padding:20px 0 0 20px;align-items:start}
  .tab-col{min-width:0}
  .tab-split .pilar-grid,.tab-split .saved-split{display:block}
  .tab-split .saved-split>aside{position:static;max-height:none;overflow:visible}
}
/* Tableta en vertical (768–1023): Pilares y Mis planes también llevan el mapa al lado */
@media (min-width:768px) and (max-width:1023px){
  .tab-split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:0 20px;align-items:start;padding:12px 0 0 16px}
  .tab-col{min-width:0}
  .tab-split .pilar-grid,.tab-split .saved-split{display:block}
  .tab-split .saved-split>aside{position:static;max-height:none;overflow:visible}
  .tab-split>.side,.tab-split>.tab-col{grid-area:auto}
  .tab-split>.side{display:block;position:sticky;top:calc(var(--top-h) + var(--band) + 12px);height:calc(100svh - var(--top-h) - var(--band) - var(--nav-h) - 24px - var(--safe-b));padding:0 16px 0 0}
  .tab-split .side .map{height:100%;border-radius:var(--r-xl)}
}
@media (min-width:1280px){
  /* ZIRPA-APP (Jorge 3-oct, captura 19: «en escritorio quiero que el mapa ocupe más, la mitad mínimo incluso más»):
     el mapa se lleva la mitad de lo que queda a la derecha de los filtros (el 55 % en pantallas de 1600 o más), sin
     dejar la agenda por debajo de 420 px: así a 1280 también llega a la mitad. Con el separador (5-split.js) cada cual
     lo mueve entre el 35 y el 70 %, guardado en --rd-split-user. --rd-cw: el ancho a la derecha de los filtros */
  .agenda-split{--rd-split:.5;--rd-cw:calc(100% - 328px);grid-template-columns:300px minmax(0,1fr) max(320px,min(calc(var(--rd-cw) * var(--rd-split-user,var(--rd-split))),calc(var(--rd-cw) - 448px)));padding-right:0}
  .side{display:block;position:sticky;top:calc(var(--top-h) + var(--band));height:calc(100vh - var(--top-h) - var(--band));height:calc(100svh - var(--top-h) - var(--band));margin-top:-20px;padding:16px 16px 16px 0}
  .side .map{height:100%;border-radius:var(--r-xl)}
}
@media (min-width:1280px){
  /* Pilares, Lugares y Mis planes: la columna de la pestaña y, a la derecha, el mismo mapa y reparto que la Agenda (tabSplit, 3-views.js) */
  .tab-split{--rd-split:.5;--rd-cw:calc(100% - 328px);display:grid;grid-template-columns:minmax(0,1fr) max(320px,min(calc(var(--rd-cw) * var(--rd-split-user,var(--rd-split))),calc(var(--rd-cw) - 448px)));gap:0 28px;padding:20px 0 0 28px;align-items:start}
  .tab-col{min-width:0}
  .tab-split .pilar-grid,.tab-split .saved-split{display:block}
  .tab-split .saved-split>aside{position:static;max-height:none;overflow:visible}
}
@media (min-width:1600px){.agenda-split{--rd-split:.55}}
@media (min-width:1600px){.tab-split{--rd-split:.55}}

/* ZIRPA-APP (Jorge 5-oct): en tablet también son dos columnas independientes: la de días y filtros tiene su propio scroll,
   como en el ordenador (antes, en el iPad, los días se quedaban fijos y los filtros bajaban con la lista) */


/* ---------- Onda al tocar (Material 3) ---------- */
.rh{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none}
.rpl{position:absolute;border-radius:50%;background:currentColor;opacity:.13;transform:scale(0);animation:rpl .5s var(--ease-d) forwards;transition:opacity .35s linear}
.rpl.out{opacity:0}
.lrow,.tab,.minirow,.res,.cat-opt,.cd,.searchpill,.avatarbtn,.telgrid a,.hc a,.sosbig,.logo,.editbar button,.peekrow,.pday,.mustc{position:relative}
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 16px;border-radius:999px;background:var(--primary);color:var(--on-primary);font-weight:800;text-decoration:none}
.skip:focus{top:calc(8px + var(--safe-t))}
#views:focus{outline:none}

/* ---------- Movimiento ---------- */
@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes sheetup{from{transform:translateY(100%)}to{transform:none}}
/* Jorge 16-oct-2026: las tarjetas de la agenda, Pilares, Lugares y Mis planes entran al hacer scroll y las fotos llevan parallax.
   Va con el propio scroll (animation-timeline), sin JavaScript. Donde el navegador no lo sabe hacer, o con el movimiento reducido,
   todo se ve como antes. El hilo de la agenda no se mueve: entran la hora, la tarjeta y su punto. En .place van translate, scale y
   filter (no opacity ni transform) para sumarse a «rise», que anima la entrada al cambiar de pestaña.
   Jorge 17-oct-2026 (app Android: «no va continuo el scroll»): solo con ratón o trackpad. Cada tarjeta llevaba su propia capa
   (280 capas y unos 640 MB de memoria gráfica en un móvil al bajar la agenda, frente a 50 sin ellas) y el scroll iba a tirones;
   con el dedo las tarjetas entran como antes de esto, con «rise» al cambiar de pestaña. */
@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){
  @keyframes zr-reveal{from{opacity:0;translate:0 40px;scale:.94}to{opacity:1;translate:none;scale:none}}
  @keyframes zr-reveal-place{from{filter:opacity(0);translate:0 40px;scale:.94}to{filter:none;translate:none;scale:none}}
  @keyframes zr-dot{from{scale:0}to{scale:none}}
  @keyframes zr-parallax{from{translate:0 -7%}to{translate:0 7%}}
  .ev-body,.ev-time{animation:zr-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 90%}
  .ev-dot{animation:zr-dot linear both;animation-timeline:view();animation-range:entry 40% entry 100%}
  .place{animation:zr-reveal-place linear both;animation-timeline:view();animation-range:entry 0% entry 90%}
  html.anim .place{animation:rise .5s var(--ease-d) backwards,zr-reveal-place linear both;animation-delay:calc(min(var(--i,0),10) * 25ms),0s;animation-timeline:auto,view();animation-range:normal,entry 0% entry 90%}
  /* Un lugar con su estrella entra entero, con la envoltura */
  .pfav-w{animation:zr-reveal-place linear both;animation-timeline:view();animation-range:entry 0% entry 90%}
  html.anim .pfav-w{animation:rise .5s var(--ease-d) backwards,zr-reveal-place linear both;animation-delay:calc(min(var(--i,0),10) * 25ms),0s;animation-timeline:auto,view();animation-range:normal,entry 0% entry 90%}
  .pfav-w>.place,html.anim .pfav-w>.place{animation:none}
  .ev-card .banner,.place .banner{overflow:hidden}
  .ev-card .banner img,.place .banner img{scale:1.16;animation:zr-parallax linear both;animation-timeline:view();animation-range:cover}
}}
@keyframes sheetdown{to{transform:translateY(100%)}}
@keyframes sheetin{from{transform:translateX(calc(100% + 24px))}to{transform:none}}
@keyframes sheetout{to{transform:translateX(calc(100% + 24px))}}
@keyframes peek{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes pop{40%{transform:scale(1.35)}}
@keyframes pop-in{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
@keyframes pulse{50%{opacity:.35}}
@keyframes ring{from{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}
@keyframes toast{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes reveal{from{clip-path:circle(0 at var(--vx,50%) var(--vy,0%))}to{clip-path:circle(150vmax at var(--vx,50%) var(--vy,0%))}}
@keyframes fadeout{to{opacity:0}}
@keyframes fadethrough{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
@keyframes rpl{to{transform:scale(1)}}
::view-transition-old(root),::view-transition-new(root){animation-duration:.35s}
html.vt-theme::view-transition-old(root){animation:none}
html.vt-theme::view-transition{pointer-events:none}
html.vt-theme::view-transition-new(root){animation:reveal .55s var(--ease) both}
/* Filtrar la agenda: las fichas se reacomodan (vtList en 1-core.js); el resto de la página no se mueve */
/* Respuesta al pulsar: chips y botones se hunden un poco y vuelven con rebote suave */
.chip{transition:background .2s,border-color .2s,color .2s,transform .18s var(--ease)}
.btn{transition:background .2s,box-shadow .2s,transform .18s var(--ease)}
.chip:active,.btn:active{transform:scale(.95)}
/* Jorge 17-oct: también todos los botones del mapa (acercar, alejar, 3D, ubicación, pantalla completa) */
.map .ctl button,.map.real .maplibregl-ctrl-group button,.fsbtn{transition:background .2s,transform .18s var(--ease)}
.map .ctl button:active,.map.real .maplibregl-ctrl-group button:active,.fsbtn:active{transform:scale(.9)}
html[data-vt] :is(.ev,.place,.pfav-w).vt-in{view-transition-name:var(--vtn)}
html[data-vt] :is(.ev,.place,.pfav-w){animation:none}
html[data-vt]::view-transition{pointer-events:none}
html[data-vt]::view-transition-old(root),html[data-vt]::view-transition-new(root){animation:none;mix-blend-mode:normal}
html[data-vt]::view-transition-group(*){animation-duration:.45s;animation-timing-function:var(--ease-d)}
/* La ficha que sale se apaga primero (.12 s) y la que entra espera ese momento: antes se veían las dos superpuestas */
html[data-vt]::view-transition-new(*):only-child{animation:rise .38s var(--ease-d) .1s both}
html[data-vt]::view-transition-old(*):only-child{animation:fadeout .12s ease-in both}
@media (prefers-reduced-motion:reduce){*,*::before,*::after,::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}

/* ---------- MapLibre GL (solo se usa cuando el mapa real puede cargar) ---------- */
.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (forced-colors:active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (forced-colors:active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}.maplibregl-ctrl button:not(:disabled):hover{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (forced-colors:active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (forced-colors:active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (forced-colors:active) and (prefers-color-scheme:light){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:hsla(0,0%,100%,.5);margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:hsla(0,0%,100%,.5);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (forced-colors:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (forced-colors:active) and (prefers-color-scheme:light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:hsla(0,0%,100%,.75);border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0,0,0,.35);box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:rgba(0,0,0,.4);color:#fff;display:flex;font-size:1.4em;inset:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover:none),(width <= 480px){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999}
@media (prefers-reduced-motion:reduce){.emblem svg:not(.msvg){animation:none!important}}
.pal[data-p="cachirulo"] .sw3 i:nth-child(2){background:linear-gradient(90deg,rgba(26,11,14,.6) 50%,transparent 50%) 0 0/6px 6px,linear-gradient(rgba(26,11,14,.6) 50%,transparent 50%) 0 0/6px 6px,#C8102E}
.modes .chip{white-space:nowrap}

/* ---------- v7: menús de «Cómo llegar» y calendario, pases, «Ver en el mapa» ---------- */
/* Sin doble toque para hacer zum (el pellizco sigue funcionando, que es accesibilidad) */
html{touch-action:manipulation}
svg.msvg{display:inline-block;width:1em;height:1em;flex:none;overflow:visible}
.mrow.go>.ms:last-child{visibility:visible;color:var(--ink-3);font-size:20px}
.mrow.go{text-decoration:none;color:inherit}
.mrow[aria-disabled="true"]{opacity:.55}
.mi.a-zirpa{--dc:var(--primary)}.mi.a-google{--dc:#1A73E8}.mi.a-apple{--dc:#5E5CE6}.mi.a-waze{--dc:#0A8FC2}
:root[data-theme="dark"] .mi.a-google{--dc:#8AB4F8}:root[data-theme="dark"] .mi.a-apple{--dc:#9D9BFF}:root[data-theme="dark"] .mi.a-waze{--dc:#5BC8F0}
.mnote{display:flex;gap:8px;align-items:flex-start;margin:6px 16px 4px;padding-top:10px;border-top:1px solid var(--outline-soft);font:600 12.5px/1.4 var(--body);color:var(--ink-3)}
.mnote .ms{font-size:17px;margin-top:1px}
.peekrow b.nh{font:800 11.5px/1.2 var(--body);color:var(--ink-3);padding-top:2px}
.peekrow em.ps{display:flex;align-items:center;gap:4px;margin-top:3px;font:700 12.5px/1.3 var(--body);font-style:normal;color:var(--ink-3)}
.peekrow em.ps .ms{font-size:15px}
.ev-pases{display:flex;gap:4px;align-items:flex-start;font:700 13px/1.35 var(--body);color:var(--ink-2);min-width:0}
.ev-pases .ms{font-size:17px;margin-top:1px;color:var(--g,var(--primary))}
.tag.nextp{background:var(--primary-c);color:var(--on-primary-c)}
/* Jorge 28-oct: los pases del día, un recuadro igual que Cuándo, Hora o Dónde (mismo fondo: con el teñido salía casi negro y el título no se leía), y las horas solo en los botones */
.pases .ptimes{margin-top:8px}
.ptimes{display:flex;flex-wrap:wrap;gap:6px}
.ptimes .chip{min-height:34px;padding:4px 12px;font-variant-numeric:tabular-nums}
.factlink{display:block;min-width:0;text-align:left;margin:-6px -8px;padding:6px 8px;border-radius:12px;position:relative;transition:background .2s}
@media (hover:hover){.factlink:hover{background:color-mix(in oklab,var(--ink) 6%,transparent)}}
.factlink:active{background:color-mix(in oklab,var(--ink) 10%,transparent)}
.fact .factlink .onmap{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font:800 13px/1 var(--body);color:var(--primary)}
.fact .factlink .onmap .ms{font-size:17px}
.btn.act .bm{width:20px;height:20px;flex:none}
.hero .hplace{display:inline-flex;align-items:center;gap:4px;max-width:100%;margin-top:8px;min-height:40px;padding:0 10px 0 6px;border-radius:999px;background:color-mix(in oklab,var(--surface) 70%,transparent);font:800 14px/1.2 var(--body);color:var(--ink);text-align:left}
.hero .hplace span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hero .hplace .ms{font-size:19px;color:var(--primary);flex:none}
.hero .hplace .ms:last-child{font-size:20px;color:var(--ink-2)}
.ev-time small.np{display:block;margin-top:4px;font:800 11.5px/1.1 var(--body);color:var(--g,var(--ink-3));white-space:nowrap}

/* ---------- v8: bienvenida de la primera visita ---------- */
.wl-feats{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.wl-feats li{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;padding:8px 0}
.wl-feats .mi,.wl-steps .mi{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-m);background:var(--primary-c);color:var(--on-primary-c)}
.wl-feats .mi .ms{font-size:22px}
.wl-feats b{display:block;font:800 16px/1.25 var(--body)}
.wl-feats small,.wl-steps small{display:block;margin-top:2px;font:600 13.5px/1.35 var(--body);color:var(--ink-3)}
.wl-feats li.fest .mi{background:var(--fest-c);color:var(--on-fest-c)}
html[data-palette="cachirulo"] .wl-feats li.fest .mi{background:var(--cachi);color:#fff}
.wl-likes .chip{min-height:34px;padding:4px 12px;font-size:13.5px}
.wl-install{border-radius:var(--r-l);background:var(--container);padding:4px 14px}
.wl-install .seg3.two{grid-template-columns:1fr 1fr;margin:6px 0 12px}
.wl-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:st}
.wl-steps li{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;font:600 14.5px/1.35 var(--body)}
.wl-steps .mi{background:var(--surface);color:var(--primary)}
.wl-install .hint{display:flex;gap:6px;align-items:flex-start;margin:12px 0 10px;font:600 12.5px/1.4 var(--body);color:var(--ink-3)}
.wl-install .hint .ms{font-size:16px;margin-top:1px}
.wl-legal{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;margin:0;font:700 13px/1 var(--body);color:var(--ink-3)}
.wl-legal button{min-height:36px;padding:0 6px;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--outline)}
@media (min-width:900px){
  .sheet[data-kind="welcome"]{left:calc(50% - 280px);right:auto;top:5vh;bottom:auto;width:560px;max-height:90vh;max-height:90dvh;animation:pop-in .32s var(--ease-d) both;transform-origin:center}
}
.wl-note{margin:0;text-align:center;font:600 12.5px/1.4 var(--body);color:var(--ink-3)}
.wl-note+.wl-legal{margin-top:-10px}
.btn.danger{background:var(--warn);color:var(--surface);border-color:transparent}
.lrow.danger,.lrow.danger>.ms:first-child{color:var(--warn)}

/* Mis planes: aviso de guardados que ya pasaron */
.pastnote{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:10px 12px;border-radius:var(--r-l);background:var(--container);color:var(--ink-2);font:600 14px/1.3 var(--body)}
.pastnote .ms{color:var(--ink-3)}
.pastnote .btn{margin-left:auto}
.museosnote{margin:12px 0 4px;background:var(--primary-c);color:var(--on-primary-c)}.museosnote .ms{color:inherit}.museosnote{flex-wrap:nowrap;gap:12px;padding:12px 14px}.museosnote .ms{flex:none}.museosnote .txt{display:grid;gap:2px;min-width:0;flex:1 1 auto;text-align:left}.museosnote .btn{flex:none;margin-left:auto}@media (max-width:480px){.museosnote{flex-wrap:wrap}.museosnote .txt{flex:1 1 calc(100% - 44px)}.museosnote .btn{margin-left:36px}}.museosnote small{font:600 12.5px/1.3 var(--body);opacity:.85}
.mustc.gone{opacity:.8;filter:grayscale(1)}
.landmark,.district,.mk-label{pointer-events:none}
/* Dedos: los botones pequeños tienen una zona de toque de al menos 44 px aunque se vean más pequeños */
@media (pointer:coarse){
  .chip:not(.quick .chip,.mapbar .chip,.cal-presets .chip)::after,.wk::after,.navmini::after,.avatarbtn::after,.mapnote .iconbtn::after,.ribbon-head .iconbtn::after,.topbar .iconbtn::after,.mapday .pill .iconbtn::after,.btn.small::after{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}
  .avatarbtn,.btn.small,.wk{position:relative}
}

/* ---------- v11 ---------- */
/* Pilares: los días que ya pasaron, en gris; lo que ya ha pasado hoy, plegado al final */
.pday.past:not([aria-pressed="true"]){background:transparent;box-shadow:inset 0 0 0 1px var(--outline-soft);opacity:.6}
.pday.past:not([aria-pressed="true"]) b{color:var(--ink-3)}
.pastacts{margin:22px 0 0;border-radius:var(--r-l);background:var(--container)}
.pastacts>summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 14px;cursor:pointer;list-style:none;font:800 15px/1.2 var(--body);color:var(--ink-2)}
.pastacts>summary::-webkit-details-marker{display:none}
.pastacts>summary small{font:800 13px/1 var(--body);color:var(--ink-3)}
.pastacts>summary .ms:last-child{margin-left:auto;transition:transform .2s}
.pastacts[open]>summary .ms:last-child{transform:rotate(180deg)}
.pastacts>.ev-card,.pastacts>.ev{opacity:.62;margin-left:8px;margin-right:8px}
.pastacts[open]{padding-bottom:8px}
/* Menos colores por tarjeta: el color del tipo solo en la raya y en el icono; las etiquetas, neutras (salvo «En marcha») */
.ev-card .kchip{background:none;padding:0;color:var(--ink-2)}
.ev-card .kchip .ms{color:var(--g)}
.ev-card .tag.free,.ev-card .tag.fest{background:var(--container);color:var(--ink-2)}
.ev-card .tag.free::before,.ev-card .tag.fest::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--good)}
.ev-card .tag.fest::before{background:var(--fest)}
/* Ficha: Guardar y Cómo llegar siempre a mano, abajo; el resto dentro de la ficha (.actin) */
.evfoot{margin-top:18px;align-items:center;z-index:5}
.evfoot .btn{min-height:50px;padding:0 10px;white-space:nowrap;font-size:15px;gap:6px}
/* ZIRPA-APP (Jorge 5-oct): el botón de borde («Cómo llegar») va con fondo; si no, por arriba se transparentaba lo de detrás */
.evfoot .btn:not(.primary):not(.tonal){background:var(--surface)}
@media (min-width:600px){.evfoot .btn{flex:0 1 220px}}
/* ZIRPA-APP (Jorge 3-oct, «2 abajo, 3 dentro»): Guardar y Cómo llegar abajo, el resto dentro de la ficha (4-ui.js evActs) */
.actin{display:flex;flex-wrap:wrap;gap:6px;margin:-6px 0 14px}
.actin .btn.act{flex:1 1 auto;gap:5px;min-height:40px;padding:6px 10px;white-space:nowrap;border-color:transparent;background:var(--primary-c);color:var(--on-primary-c);font-size:13px}
.actin .btn.act .ms{font-size:18px}

/* Cabecera de la hoja más baja: el asa va encima y la X sube arriba del todo (antes, al bajar, quedaba una franja blanca muy alta) */
@media (max-width:899px){
  .sheet>.grab{position:absolute;top:0;left:50%;width:140px;height:22px;transform:translateX(-50%);z-index:7}
  .sheet-scroll{padding-top:22px}
  .sheet-top{padding-top:6px;top:-22px}
  .sheet.scrolled .sheet-top::before,.sheet.has-hero .sheet-top::before{inset:-6px -20px -6px}
}
/* Emblema del Pilar con el cachirulo: cuadro rojo y negro dentro y rombo blanco, en claro y en oscuro */
html[data-palette="cachirulo"] .emblem svg:not(.msvg) path{fill:url(#cachiq)}
html[data-palette="cachirulo"] .emblem .ms{color:#fff;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.55))}
/* Cómo llegar: botones de empezar/terminar, barra pequeña y paso actual */
.navrow{display:flex;gap:8px;margin:0 0 12px}
.navrow .btn{flex:1;min-height:48px}
.steps li.cur{background:var(--primary-c);color:var(--on-primary-c);border-radius:12px;font-weight:800;padding-left:8px;padding-right:8px}
.steps li.done{opacity:.5}
.ext.one{grid-template-columns:1fr}
.routebar{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 10px;border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--shadow-2);animation:peek .3s var(--ease)}
.routebar.still{animation:none} /* Jorge 18-oct: al cambiar de botones navegando, sin volver a entrar */
.routebar .rbi{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:var(--r-m);background:var(--container);color:var(--primary)}
.routebar.nav .rbi{background:var(--primary);color:var(--on-primary)}
.routebar .rbi .ms{font-size:28px}
.routebar .rbt{flex:1;min-width:0;display:grid;gap:2px;text-align:left;padding:2px 4px;min-height:44px;align-content:center}
.routebar .rbt b{font:900 17px/1.15 var(--display);color:var(--ink)}
.routebar .rbt span{font-size:13.5px;line-height:1.3;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.routebar .iconbtn{flex:none}
.mepin.nav{width:22px;height:22px;box-shadow:0 0 0 8px rgba(26,115,232,.22),0 1px 4px rgba(0,0,0,.35)}
/* Franja «Ahora / Próximo» en la agenda de hoy */
.nowstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin:0 0 14px}
.nowstrip button{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 14px;border-radius:var(--r-l);background:var(--container);text-align:left;min-width:0}
.nowstrip button>span:last-child{display:grid;min-width:0}
.nowstrip small{font:800 11.5px/1.2 var(--body);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}
.nowstrip b{font:800 15px/1.25 var(--body);color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden} /* Jorge 18-oct: el título entero, hasta 2 líneas */
.nowstrip .ns-next .ms{color:var(--primary)}
@media (max-width:420px){.nowstrip{grid-template-columns:1fr}}
/* Mapa en el móvil: un solo panel con asa (pequeño / medio / grande) */
.mpgrab{display:none}
@media (max-width:899px){
  .mapday.panel{left:6px;right:6px;gap:0;padding:0 12px 12px;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-2);animation:peek .35s var(--ease)}
  /* Asa de 44 px de alto para el dedo (la raya se ve igual) */
  .mapday.panel .mpgrab{display:grid;place-items:center;height:44px;margin:-10px -12px 0;touch-action:none;cursor:grab}
  .mapday.panel .mpgrab::before{content:"";width:40px;height:4px;border-radius:2px;background:var(--outline)}
  .mapday.panel .mapnote{display:none}
  .mapday.panel .pill,.mapday.panel .fsbtn{box-shadow:none;background:var(--container)}
  .mapday.panel .fsbtn{width:42px;height:42px}
  .mapday.panel .mdrow{align-items:center;padding-bottom:6px;border-bottom:1px solid var(--outline-soft)}
  .mapday.panel #peek{overflow:auto;overscroll-behavior:contain;max-height:var(--ph);transition:max-height .3s var(--ease)}
  .mapday.panel[data-size="min"]{--ph:0px}
  .mapday.panel[data-size="min"] .mdrow{border-bottom:0;padding-bottom:0}
  .mapday.panel[data-size="half"]{--ph:36vh;--ph:36dvh}
  .mapday.panel[data-size="full"]{--ph:52vh;--ph:52dvh}
  /* Con el panel grande, los botones del mapa (3D, zum…) se apartan en vez de quedar medio tapados */
  html.panel-full .mapview .map .ctl,html.panel-full .mapview .maplibregl-ctrl-top-right{opacity:0;pointer-events:none;transition:opacity .2s}
  .mapday.panel .peek,.mapday.panel .route{background:none;box-shadow:none;border-radius:0;padding:10px 0 0;max-height:none;overflow:visible;animation:none}
}
/* Mis planes en escritorio: mapa con la ruta bajo la cuenta atrás */
.savedmapbox{margin-top:16px}
.savedmapbox .map{height:300px;border-radius:var(--r-l);overflow:hidden;box-shadow:inset 0 0 0 1px var(--outline-soft)}
.savedmapbox p{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 2px 0;font-size:13px;color:var(--ink-3)}
.savedmapbox p .ms{font-size:18px;color:var(--primary)}
@media (min-width:1200px){.saved-split>aside{max-height:calc(100vh - var(--top-h) - var(--band) - 32px);overflow:auto;scrollbar-width:thin}}
/* Tableta en vertical: la agenda a la izquierda y el mapa fijo a la derecha */
@media (min-width:768px) and (max-width:1023px){
  #v-agenda{max-width:none}
  .agenda-split{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-areas:"left side" "col side";gap:0 20px;align-items:start}
  .agenda-left{grid-area:left;min-width:0}
  .agenda-col{grid-area:col;min-width:0}
  .side{grid-area:side;display:block;position:sticky;top:calc(var(--top-h) + var(--band) + 12px);height:calc(100svh - var(--top-h) - var(--band) - var(--nav-h) - 24px - var(--safe-b));margin-top:12px}
  .side .map{height:100%;border-radius:var(--r-xl)}
}
@media (max-width:899px){.mapday.panel:has(.route) .mdrow{display:none}.mapday.panel:has(.route) #peek{max-height:calc(var(--ph) + 40px)}}
.routebar .rbt b{font-size:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* ---------- Bienvenida v11: pantalla completa, tres páginas con el dedo ---------- */
.sheet[data-kind="welcome"]{top:0;max-height:none;height:100vh;height:100dvh;border-radius:0}
.sheet[data-kind="welcome"]>.grab{display:none}
.sheet[data-kind="welcome"] .sheet-scroll{flex:1;display:flex;padding:0;overflow:hidden}
.wl{position:relative;flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;width:100%}
.wl-skip{position:absolute;z-index:3;top:calc(10px + var(--safe-t));right:12px;min-height:44px;padding:0 16px;border-radius:999px;font:800 15px/1 var(--body);color:var(--ink-2);background:color-mix(in oklab,var(--surface) 70%,transparent)}
.wl-pages{flex:1;min-height:0;width:100%;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.wl-pages::-webkit-scrollbar{display:none}
.wl-page{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column}
.wl-in{display:grid;align-content:start;gap:16px;padding:calc(64px + var(--safe-t)) 24px 24px;max-width:520px;width:100%;margin:0 auto}
.wl-page h2{margin:0;font:900 clamp(34px,10vw,46px)/1.02 var(--display);letter-spacing:-.015em;color:var(--ink)}
.wl-lead{margin:0;font:600 17px/1.45 var(--body);color:var(--ink-2)}
.wl-step{font:900 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}
.wl-p1{background:linear-gradient(180deg,var(--primary-c) 0%,var(--bg) 62%)}
.wl-p1 .wl-in{padding-top:calc(56px + var(--safe-t))}
.wl-brand{display:flex;align-items:center;gap:10px}
.wl-brand .mark{width:52px;height:52px}
.wl-brand b{font:1000 34px/1 var(--display);letter-spacing:-.035em;color:var(--brand);white-space:nowrap}
.wl-p1 h2{font-size:clamp(40px,12vw,56px)}
.wl-p1 .pilar-art{margin-top:auto}
.wl-p1 .pilar-art svg{max-height:120px}
.wl-feats{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:10px}
.wl-feats li{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:center;font:700 15.5px/1.35 var(--body);color:var(--ink)}
.wl-feats .mi,.wl-steps .mi{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-m);background:var(--surface);color:var(--primary);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.wl-feats .mi .ms{font-size:22px}
.wl-feats li.fest .mi{background:var(--fest);color:var(--fest-c)}
html[data-palette="cachirulo"] .wl-feats li.fest .mi{background:var(--cachi,#C8102E);color:#fff}
.wl-steps small{display:block;margin-top:2px;font:600 13.5px/1.35 var(--body);color:var(--ink-3)}
.wl-p2 .likes{gap:10px}
.wl-p2 .likes .chip{min-height:48px;padding:6px 16px;font-size:15.5px;border-radius:var(--r-s)}
.wl-install{border-radius:var(--r-l);background:var(--container);padding:14px}
.wl-install .seg3.two{grid-template-columns:1fr 1fr;margin:0 0 14px}
.wl-note{display:flex;gap:8px;align-items:flex-start;margin:0;font:600 13px/1.45 var(--body);color:var(--ink-3)}
.wl-note .ms{font-size:18px;color:var(--good)}
.wl-p3 .wl-legal{justify-content:flex-start;margin-top:-6px}
.wl-foot{flex:none;display:flex;align-items:center;gap:16px;padding:12px 24px calc(14px + var(--safe-b));border-top:1px solid var(--outline-soft);background:var(--surface)}
.wl-dots{display:flex;gap:0;margin-right:auto}
.wl-dots button{position:relative;width:44px;height:44px;display:grid;place-items:center}
.wl-dots button::before{content:"";width:8px;height:8px;border-radius:4px;background:var(--outline);transition:width .25s var(--ease),background .25s}
.wl-dots button[aria-selected="true"]::before{width:22px;background:var(--primary)}
.wl-foot .btn{min-height:52px;padding:0 22px;font-size:16px}
/* ZIRPA-APP (Jorge 3-oct, 22:22, captura 07): en el móvil la bienvenida se lee entera al abrir (todas las líneas de la
   primera página, también «Fiestas del Pilar: faltan N días») y asoma el dibujo del Pilar: textos más juntos y la barra de
   abajo (puntos y «Siguiente») baja y fina */
@media (max-width:899px){
  .wl-in{gap:10px;padding:calc(56px + var(--safe-t)) 20px 14px}
  .wl-p1 .wl-in{padding-top:calc(14px + var(--safe-t))}
  .wl-brand{min-height:44px;padding-right:96px}
  .wl-brand .mark{width:40px;height:40px}
  .wl-brand b{font-size:29px}
  .wl-page h2{font-size:clamp(30px,8.6vw,38px);line-height:1}
  .wl-p1 h2{font-size:clamp(34px,10vw,44px)}
  .wl-lead{font-size:15.5px;line-height:1.38}
  .wl-feats{gap:2px;margin-top:0}
  .wl-feats li{grid-template-columns:32px 1fr;gap:10px;font-size:14.5px;line-height:1.28}
  .wl-feats .mi{width:32px;height:32px;border-radius:var(--r-m)}
  .wl-feats .mi .ms{font-size:19px}
  .wl-p1 .pilar-art svg{max-height:96px}
  .wl-p1 .pilar-art .band{height:14px}
  .wl-p2 .likes{gap:8px}
  .wl-p2 .likes .chip{min-height:40px;padding:4px 13px;font-size:14.5px;border-radius:var(--r-s)}
  .wl-foot{gap:8px;padding:4px 12px calc(4px + var(--safe-b))}
  .wl-dots button{width:26px;height:36px}
  .wl-dots button::before{width:6px;height:6px;border-radius:3px}
  .wl-dots button[aria-selected="true"]::before{width:16px}
  .wl-foot .btn{min-height:36px;padding:0 14px;font-size:14px;gap:6px}
  .wl-foot .btn .ms{font-size:18px}
  .wl-skip{top:calc(8px + var(--safe-t));min-height:36px;padding:0 14px;font-size:14px;border-radius:999px}
}
/* ZIRPA-APP (Jorge 5-oct): en escritorio la bienvenida cabe entera (antes 720 px y la primera página hacía scroll) y la
   barra de desplazamiento, si sale en pantallas bajas, es fina y no tapa «Saltar» */
@media (min-width:900px){
  /* ZIRPA-APP (Jorge 7-oct, captura iPad): en Safari 100vh cuenta la barra de direcciones y pestañas y el pie
     («Siguiente») quedaba fuera; dvh es el alto que se ve */
  /* Jorge 29-oct (captura de escritorio): con el dibujo de Halloween la primera página pedía unos 850 px y con 820 el dibujo salía cortado por
     el pie; en pantallas altas la ventana llega a 900 px */
  .sheet[data-kind="welcome"]{top:max(16px,calc(50vh - 450px));top:max(16px,calc(50dvh - 450px));height:min(900px,calc(100vh - 32px));height:min(900px,calc(100dvh - 32px));border-radius:28px}
  .wl-page{scrollbar-width:thin}
  .wl-skip{top:12px;right:24px}
  .wl-in{padding-top:56px}
}
.wl .wl-note{text-align:left}
@media (min-width:900px){.wl-p1 .pilar-art svg{max-height:84px}}

/* ---------- v12 ---------- */
@media (pointer:coarse){
  /* Chips de las filas deslizables y del mapa: 44 px para el dedo, sin cambiar cómo se ven */
  .quick .chip::after,.mapbar .chip::after{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
  .more .btn,.moreday .btn{min-height:44px}
  .popover .seg3 button,.card .seg3 button,.wl-install .seg3 button{min-height:44px}
  /* «Mayús + clic» solo sirve con teclado */
  .cal-legend .finehint{display:none}
}
/* Editor de reglas en el móvil: cada desplegable en su línea, sin cortar el texto */
@media (max-width:479px){#rform .two{grid-template-columns:minmax(0,1fr)}#rform .two .two{gap:10px!important}}

/* ZIRPA-APP: the app's additions, in v12's own styles. Phone and WhatsApp facts are links (7-zirpa.js zirpaContactHTML) */
a.fact{text-decoration:none;color:var(--ink)}
a.fact span:not(.ms){color:var(--primary)}
/* «Avisar de un error» under the source line of the plan sheet (7-zirpa.js zirpaReportHTML) */
.sheet .btn.zreport{margin:6px 0 0 -12px;min-height:40px;font-size:13px}
.sheet .btn.zreport .ms{font-size:18px}

/* ZIRPA-APP (decisión de Jorge, 2-oct-2026): los dos bloques de «Con peques» */
.audhead{display:flex;align-items:center;gap:10px;margin:22px 0 0;padding:10px 14px;border-radius:var(--r-l);background:var(--primary-c);color:var(--on-primary-c)}
.audhead :is(h2,h3,h4){margin:0;font:800 15px/1.2 var(--body)}
.audhead small{margin-left:auto;font:800 13px/1 var(--body);opacity:.8}
/* «En tu barrio» sin planes ese día (2-agenda.js barrioEmptyHTML) */
.audhead.near.empty{display:grid;grid-template-columns:24px minmax(0,1fr);gap:4px 8px;margin-top:14px;padding:10px 12px;text-align:left}
.audhead.near.empty>.ms{font-size:24px;align-self:start}
.audhead.near.empty :is(h2,h3,h4){min-width:0;line-height:1.3;overflow-wrap:anywhere}
.audhead.near.empty small{margin-left:0;font-size:13px;font-weight:700;line-height:1.3}
.nearnext{grid-column:1/-1;min-width:0;margin:0;padding-top:4px;border-top:1px solid var(--outline-soft)}
.nearnext .btn.text{justify-content:flex-start;width:100%;padding:6px 0;text-align:left;white-space:normal;font-size:13px}

/* ZIRPA-APP (petición de Jorge): el texto no se selecciona al tocar o arrastrar; sí en los campos para escribir */
body{-webkit-user-select:none;user-select:none}
input,textarea,select,[contenteditable]{-webkit-user-select:text;user-select:text}
/* «Continuar con Google» con la «G» oficial (7-zirpa.js zirpaGoogleG): sobre un círculo blanco, el botón sigue el tema */
.zgoogle{display:inline-grid;place-items:center;width:24px;height:24px;flex:none;border-radius:50%;background:#fff}
.zgoogle svg{display:block}
/* Mis planes sin cuenta: guardar sin entrar, con la cuenta para no perderlos (7-zirpa.js zirpaSavedNudgeHTML) */
.znudge{margin:14px 0 0;padding:12px 14px;border-radius:var(--r-l);background:var(--container);color:var(--ink-2);font-size:14px}
.znudge p{display:grid;grid-template-columns:22px 1fr;gap:10px;margin:0 0 10px}
.znudge p b{color:var(--ink)}
.znudge .btns{display:flex;flex-wrap:wrap;gap:8px}
/* ZIRPA-APP (Jorge 3-oct): el mapa grande aparcado (5-maps.js mapPark), vivo y del mismo tamaño, pero invisible.
   MapLibre pone visibility:visible a su atribución compacta: sin el !important de abajo, salía encima de Tu cuenta */
#mappark{position:fixed;left:0;top:0;width:100%;visibility:hidden;pointer-events:none;z-index:-1;contain:strict;height:100vh;height:100dvh}
#mappark *{visibility:hidden!important}
/* ZIRPA-APP (Jorge 3-oct, captura 09): Tu barrio en una hoja con radios de Material 3 (3-views.js openBarrio) */
.barrios{display:grid;gap:2px;margin:4px -8px 8px}
.brow{position:relative;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;min-height:52px;padding:6px 16px;border-radius:16px;text-align:left;font:700 15px/1.3 var(--body);color:var(--ink);overflow:hidden}
.brow:hover{background:var(--container)}
.brow[aria-checked="true"]{background:var(--primary-c);color:var(--on-primary-c)}
.brow[aria-checked="true"] .pz-radio{border-color:var(--primary)}
.brow[aria-checked="true"] .pz-radio::after{transform:scale(1)}
.brow:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
/* ZIRPA-APP (Jorge 3-oct, captura 04): en las hojas con título (Privacidad, Ayuda, Personalización, Tu barrio…) la X ya
   no pisa la tarjeta de debajo ni va pegada al borde: el título ocupa la altura de la X y la X se aparta 4 px más */
.sheet-top:has(+h2.plain){padding-right:4px}
.sheet .sheet-top+h2.plain{display:flex;align-items:center;min-height:48px;margin:2px 60px 8px 0}
/* ZIRPA-APP (rendimiento, 3-oct): «Cargando…» while the rest of the agenda arrives (8-resto.js, restWaitHTML) */
.festnote{display:flex;align-items:flex-start;gap:12px;margin:14px 0;padding:16px 16px 16px 18px;border-radius:24px;background:var(--container);color:var(--ink-2)}
.festnote>.ms{color:var(--primary);font-size:28px}
.festnote h2{margin:0 0 4px;font-size:18px;color:var(--ink)}
.festnote p{margin:0;font-size:14px;line-height:1.45}
.festnote .btn{margin-left:auto;flex:none}
.restwait{display:flex;align-items:center;gap:10px;margin:18px 0;padding:14px 16px;border-radius:16px;background:var(--container);color:var(--ink-2);font-weight:600}
.restwait .ms{color:var(--primary);animation:pulse 1.4s ease-in-out infinite}
.restwait.failed .ms{color:var(--ink-3);animation:none}
.restwait .btn{margin-left:auto}
.hint.restwait{background:none;padding:12px 4px 0;margin:0;font-weight:500;color:var(--ink-3)}
.day .dots.wait i{animation:pulse 1.4s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.restwait .ms,.day .dots.wait i{animation:none}}
/* ZIRPA-APP (Jorge 3-oct): «Pídeselo a Zirpa», el buscador con IA (js/9-ia.js). La chispa va en el color de acento */
.iabtn{color:var(--primary)}
.ia-action-label{font:900 13px/1 var(--body);padding:5px;border:1px solid var(--outline);border-radius:6px}
.ms.smart-search{position:relative;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;overflow:visible}
.ms.smart-search>.ms{font-size:24px;width:24px;height:24px}
.ms.smart-search>[data-spark]{position:absolute;top:-2px;right:-4px;width:13px;height:13px;background:var(--bg);border-radius:3px}
.search .ms.smart-search>[data-spark]{background:var(--container)}
.sfab.ia .ms.smart-search>[data-spark]{background:var(--primary);color:var(--on-primary)}
.res.iarow .tile{background:var(--primary);color:var(--on-primary)}
.res.iarow b{color:var(--primary)}
.chip.iachip .ms{color:var(--primary)}
.route.ia h3{display:flex;align-items:center;gap:6px}
.route.ia h3 .ms{flex:none;font-size:20px;color:var(--primary)}
.iasum{margin:8px 2px 4px;font:500 14px/1.45 var(--body);color:var(--ink-2)}
.stops .stop .why{display:block;margin-top:2px;font:500 13px/1.35 var(--body);color:var(--ink-2)}
.iawait .ms{animation:pulse 1.4s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.iawait .ms{animation:none}}
/* Jorge (3-oct): que se vea que hay IA: la chispa en la caja de buscar y una tarjeta en la agenda */
.iacard{position:relative;margin:0 0 18px;padding:16px 16px 14px;border-radius:var(--r-xl);overflow:hidden;
  background:linear-gradient(135deg,color-mix(in oklab,var(--primary) 14%,var(--surface)),color-mix(in oklab,var(--azul) 12%,var(--surface)));border:1.5px solid color-mix(in oklab,var(--primary) 30%,transparent)}
.iacard .iax{position:absolute;top:6px;right:6px}
.iacard .iahead{display:flex;align-items:center;gap:10px;padding-right:40px}
.iacard h2{margin:0;font:900 20px/1.15 var(--display);color:var(--ink)}
.iabadge{display:inline-flex;align-items:center;gap:4px;padding:4px 9px 4px 6px;border-radius:12px;background:var(--primary);color:var(--on-primary);font:900 11.5px/1 var(--body);text-transform:uppercase;letter-spacing:.08em}
.iabadge .ms{font-size:15px;width:15px;height:15px}
.iacard p{margin:8px 0 12px;font:500 14.5px/1.4 var(--body);color:var(--ink-2)}
.iaask{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:0 16px;border-radius:999px;background:var(--surface);border:1.5px solid var(--outline);color:var(--ink-3);font:600 15px/1.2 var(--body);text-align:left;box-shadow:var(--shadow-1)}
.iaask .ms{color:var(--primary)}
.iacard .ianote{margin:-4px 0 10px;font-size:12.5px;color:var(--ink-3)}
.iacard .suggest{margin-top:10px}
.iacard .chip{background:var(--surface)}
/* Anuncio de la app (4-ui.js appCardHTML): rosa claro del rombo, esquinas 24, sin sombra */
.appcard{position:relative;margin:0 0 18px;padding:16px 16px 14px;border-radius:24px;background:color-mix(in oklab,var(--primary) 9%,var(--surface));border:1.5px solid color-mix(in oklab,var(--primary) 26%,transparent)}
.appcard .appx{position:absolute;top:4px;right:4px}
.appcard .apphead{display:flex;gap:12px;align-items:flex-start;padding-right:36px}
.appcard .appmark{flex:none;width:40px;height:40px;display:grid;place-items:center}
.appcard .appmark svg{width:100%;height:100%}
.appcard h2{margin:0;font:900 17px/1.2 var(--display);color:var(--ink)}
.appcard p{margin:4px 0 0;font:500 14px/1.4 var(--body);color:var(--ink-2)}
.appcard .appsteps{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.appcard .appsteps a{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 16px 6px 8px;border-radius:999px;background:var(--surface);border:1px solid var(--outline);color:var(--ink);font:700 14.5px/1.25 var(--body);text-decoration:none}
.appcard .appsteps a>span:nth-child(2){flex:1;min-width:0}
.appcard .appsteps .n{flex:none;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:var(--on-primary);font:900 15px/1 var(--display)}
.appcard .btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.appcard .btn{flex:1 1 auto;background:var(--surface)}
.appcard .btn.primary{flex:2 1 auto;background:var(--primary);color:var(--on-primary)}
/* Aviso antes de la primera pregunta a Gemini (9-ia.js iaGate) */
.sheet .iahead{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.sheet .iahead h2{margin:0}
ul.iaaviso{margin:10px 0 16px;padding-left:20px;display:grid;gap:8px;font:500 14.5px/1.45 var(--body);color:var(--ink-2)}
ul.iaaviso b{color:var(--ink)}
/* En el móvil, la tarjeta compacta y justo debajo del día, con los ejemplos en una sola fila que se desliza */
@media (max-width:599px){
  .iacard{padding:12px 12px 12px 14px;margin-bottom:14px}
  .iacard h2{font-size:18px}
  .iacard p{margin:6px 0 10px;font-size:14px}
  .iacard .suggest{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:10px 0 0;padding:2px 2px 4px;scroll-padding-inline:2px}
  .iacard .suggest::-webkit-scrollbar{display:none}
  .iacard .chip{flex:none}
}
/* La chispa en lugar de la lupa (2-agenda.js renderTop): plana, del color de acento, sin fondo; desde 600 px con «IA» */
#searchbtn.ia{color:var(--ink-2)}
#searchbtn.ia>.ms{font-size:26px;width:26px;height:26px}
#searchbtn .lbl{display:none}
@media (min-width:600px){#searchbtn.ia{width:auto;padding:0 10px;gap:4px;border-radius:999px;display:inline-flex;align-items:center}
  #searchbtn.ia .lbl{display:inline;font:900 15px/1 var(--display)}}
@media (min-width:1280px){#searchbtn.ia{display:none}}
.searchpill.ia>.ms:first-child{font-size:22px;width:22px;height:22px}
/* Cabecera compacta en el móvil; la lupa crece a campo visible cuando hay espacio. */
@media(min-width:600px){
  .topbar .grow{flex:1}
  .topbar .searchpill{display:flex;align-items:center;gap:10px;flex:0 1 420px;min-width:180px;max-width:420px;height:44px;width:420px;padding:0 14px;border-radius:24px;background:var(--primary-c);border:1px solid var(--outline);color:var(--on-primary-c);font:800 14px/1 var(--body)}
  .topbar .searchpill .sp-t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar .searchpill .ms{color:var(--primary)}
  .topbar .searchpill .smart-search{width:28px;height:28px}
  .topbar .searchpill .smart-search>[data-spark]{background:var(--primary-c)}
  .topbar .searchpill .search-ia-label{margin-left:auto;font:900 11px/1 var(--body)}
  #searchbtn,#searchbtn.ia{display:none}
}
/* Buscador en la barra de arriba si cabe (desde 1100 px); si no, solo el icono con «IA», como en el móvil (Jorge 15-oct) */
@media(min-width:900px) and (max-width:1099px){
  .topbar .searchpill{display:none}
  #searchbtn,#searchbtn.ia{display:inline-flex;align-items:center}
}
@media(min-width:1100px) and (max-width:1279px){
  .topbar .searchpill{flex:1 1 180px;min-width:150px;max-width:360px;width:auto}
}
/* Lugares del mapa: familia con sus tipos desplegables (Jorge 5-oct) */
.quick.one.sub{margin-top:-8px}

/* ZIRPA-APP (Jorge 5-oct): menú «Lugares» del mapa con chips (familias y, debajo, sus tipos), sin flechas */
.popover.menu:has(.lchips){width:min(440px,calc(100vw - 24px));padding:12px 12px 14px}.popover.menu:has(.lchips) .pophead{margin:-4px -6px 8px 0}
.lchips{display:flex;flex-wrap:wrap;gap:6px}
.lchip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:3px 11px 3px 3px;border-radius:var(--r-s);border:1px solid var(--outline);font:700 13.5px/1.15 var(--body);color:var(--ink-2);text-align:left;transition:background .15s,border-color .15s}
.lchip .mi{flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:color-mix(in oklab,var(--dc,var(--primary)) 16%,transparent);color:var(--dc,var(--primary))}
.lchip .mi .ms{font-size:17px}
.lchip[aria-checked="true"],.lchip[aria-pressed="true"]{background:color-mix(in oklab,var(--dc,var(--primary)) 20%,var(--surface));border-color:var(--dc,var(--primary));color:var(--ink)}
.lchip.lsub{min-height:32px;font-size:12.5px;padding-right:10px}.lchip.lsub .mi{width:24px;height:24px}.lchip.lsub .mi .ms{font-size:15px}
.lchip.lsub[aria-checked="false"]{opacity:.7}
.ltypes{margin-top:12px;padding-top:10px;border-top:1px solid var(--outline-soft)}
.ltypes small{display:block;margin:0 2px 6px;font:800 11.5px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
/* Lugares (pestaña): el mismo chip que el menú del mapa, de una sola elección */
.lchip{flex:none;white-space:nowrap}.lchip small{margin-left:2px;font:700 11.5px/1 var(--body);color:var(--ink-3)}.lchip:not(:has(.mi)){padding-left:12px}
.lnote{margin:8px 2px 0;font:600 12.5px/1.35 var(--body);color:var(--ink-3)}

/* ====== ZIRPA-APP (Jorge 6-oct «Perfecto pásalo a staging»): estilo común. Una regla por elemento en toda la web ====== */
:root{--t-1:150ms;--t-2:250ms;--t-3:400ms;--t-4:220ms}
/* 3 · Botones: cuatro clases (relleno, suave, con borde, solo texto) y dos alturas: 40 px dentro, 48 px en la barra de abajo */
.btn,.btn.small{min-height:40px}
.btn.small{padding:4px 16px;font-size:14px}
.evfoot .btn,.sheet-foot .btn{min-height:48px}
.actin .btn.act{min-height:40px;font-size:14px;border-radius:999px}
/* 5 · Chips: 36 px y esquinas de 8; elegido = relleno suave. Los tipos de Lugares, igual (sin círculo) */
.chip{min-height:36px;border-radius:var(--r-s)}
.lchip{padding-left:6px}
.lchip .mi{width:24px;height:24px;background:none}
.lchip[aria-checked="true"],.lchip[aria-pressed="true"]{background:var(--primary-c);border-color:transparent;color:var(--on-primary-c)}
.lchip.lsub{min-height:36px}
/* 4 · Títulos de sección: uno solo, en mayúsculas pequeñas con raya (como «Próximos planes aquí») */
.fq :is(h3,h4),.group>:is(h2,h3){display:flex;align-items:center;gap:10px;font:900 12px/1 var(--body);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-2)}
.fq :is(h3,h4)::after,.group>:is(h2,h3)::after{content:"";flex:1;height:1px;background:var(--outline-soft)}
.group>:is(h2,h3){margin:0 0 12px}
.group>:is(h2,h3)+p{margin-top:-4px}
.fq p{margin-top:6px}
/* 7 · Espacios: 24 entre secciones, 12 del título a lo suyo, 8 entre cosas de una lista */
.sub{margin:24px 0 12px}
/* Jorge 28-oct: el texto de la ficha (plan y lugar) en un recuadro como Cuándo, Hora o Dónde, con su título «Información» */
.fact.infobox{margin:0}
.infobox .desc{margin:6px 0 0;font-size:15px}
.infobox .descx .desc{margin-bottom:0}
.infobox .descbar{margin:2px 0 -6px -12px}
/* Jorge 28-oct: en el móvil, «Mis planes» deja sitio bajo el último lugar para que la barra de abajo no lo corte */
@media(max-width:899px){#v-planes{padding-bottom:calc(var(--nav-h) + var(--safe-b) + 16px)}}
.fq{margin:24px 0 12px}
.group{margin:0 0 24px}
.mini-list{display:grid;gap:8px}
/* 6 y 7 · Tarjetas de lista (agenda, lugares): esquinas de 16 y sombra suave; cajitas de dentro de una ficha: sin sombra */
.ev-card,.place{border-radius:var(--r-l)}
.fact,.leaf{box-shadow:none}
/* 2 · Listas: lo que se toca va en cajita, sin borde ni raya de color; la fecha en el cuadradito (día, número, mes) */
.minirow.prow{background:var(--container);box-shadow:none;padding-left:12px}
.minirow.prow::before{content:none}
.minirow b{display:grid;justify-items:center;align-content:center;font:900 20px/1.05 var(--display);text-transform:none;font-variant-numeric:tabular-nums}
.minirow b small,.minirow.prow b small{display:block;margin:0;font:800 11px/1.2 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.minirow b small+small,.minirow.prow b small+small{margin-top:2px}
/* 8 · Movimiento: 150 ms para marcar y pulsar */
.chip,.lchip,.btn,.minirow,.cat-opt,.pal{transition-duration:var(--t-1)}
/* 9 · Colores sueltos a los del tema (también en oscuro) */
.violet{background:color-mix(in oklab,#7b3fb0 14%,var(--surface));color:var(--ink)}
/* ZIRPA-APP (Jorge 6-oct 14:04): Guardar, en rojo oscuro en los dos temas; Compartir, Calendario e Ir, en rosa claro en los dos */
:root{--guardar:#B3203A;--on-guardar:#fff;--claro:#FFD9DC;--on-claro:#410010}
.evfoot .btn[data-act="save"],.evfoot .btn[data-act="savespot"]{background:var(--guardar);border-color:var(--guardar);color:var(--on-guardar)}
.actin .btn.act,.evfoot .btn[data-act="share"],.navmini,.btn[data-act="route"]{background:var(--claro);border-color:transparent;color:var(--on-claro)}
/* ZIRPA-APP (Jorge 6-oct 14:57, versión 3; 14:57 «para todo lo relacionado»): tarjetas de planes y lugares con Material 3
   Expressive en toda la web (agenda, Mis planes, exposiciones, Pilares, Lugares). Superficie tonal teñida con el color del
   tipo en vez de sombra, esquinas grandes y un muelle al pulsar */
.ev-card,.opentile,.place,.mustc{border-radius:24px;background:color-mix(in oklab,var(--g,var(--primary)) 13%,var(--surface));box-shadow:none;transition:background var(--t-1),box-shadow var(--t-1),transform var(--t-2) var(--spring)}
.mustc{--g:var(--fest)}
.ev-card .in{padding:16px 18px}
@media (hover:hover){:is(.ev-card,.opentile,.place,.mustc):hover{background:color-mix(in oklab,var(--g,var(--primary)) 19%,var(--surface));box-shadow:none}}
/* Jorge 17-oct («haz el mismo efecto en el resto de tarjetas… lugares, Pilar»): toda tarjeta o fila que abre algo se hunde igual
   al tocarla, en todas las pestañas (agenda, Pilares, mapa, lugares, Mis planes, la semana, «Ahora»). Si lleva marcador, se hunde
   con ella (más abajo, :has) */
:is(.ev-card,.opentile,.place,.mustc,.nowc,.ns-next,.peekrow,.semanarow,.semanaejem,.hplace,.minirow,.pghead,.fday):active,.ev-card.pressing{transform:scale(.96)}
/* .ev-card, .opentile, .place y .mustc ya llevan su transición (muelle) */
:is(.nowc,.ns-next,.peekrow,.semanarow,.semanaejem,.hplace,.minirow,.pghead,.fday){transition:background .2s,box-shadow .25s,transform .18s var(--ease)}
.ev-card.pressing{background:color-mix(in oklab,var(--g) 24%,var(--surface))}
.ev-card.saved-flash,.ev.hl .ev-card{box-shadow:0 0 0 2px var(--g)}
.place .tile{background:color-mix(in oklab,var(--g) 22%,var(--surface))}
/* Compartir abajo en rosa claro también en la ficha de lugar (la regla de .evfoot .btn:not(.primary) le ganaba y quedaba sin fondo) */
.evfoot .btn.act[data-act="share"]{background:var(--claro);border-color:transparent;color:var(--on-claro)}
/* Con «‹ Volver a…», al bajar la cabecera ya tiene fondo: el título no pasa por debajo del botón */
.sheet.has-back.has-hero.scrolled .sheet-top::before{opacity:1}
/* Ficha de lugar: la cabecera al bajar es del mismo color que la ficha, sin franja de color arriba */
.sheet[data-kind="place"].has-hero.scrolled .sheet-top::after,.sheet[data-kind="place"].has-hero.scrolled:has(.sheet-top+.hero) .sheet-top::after{background:var(--surface)}
/* ZIRPA-APP (Auditoría 6-oct): en Afinar, aviso de que los cursos van aparte; el pie de la agenda no queda bajo los botones flotantes */
.cursonote{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;color:var(--ink-2);font-size:13px;line-height:1.4}
.cursonote .ms{font-size:18px;color:var(--primary);flex:none}
.trace-note{display:flex;gap:8px;align-items:flex-start;margin:8px 0 0;color:var(--ink-2);font-size:13px;line-height:1.4}
.trace-note .ms{font-size:18px;color:var(--primary);flex:none}
.iacard.mini{display:flex;align-items:center;gap:6px;padding:6px 6px 6px 6px}
.iacard.mini .iax{position:static;flex:none}
.iacard.mini .iaask{flex:1;min-width:0;box-shadow:none}
.iacard.mini .iaask span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ZIRPA-APP (Auditoría 6-oct): grupo de pines cercanos en el mapa (al tocarlo se acerca) */
.clu{display:grid;place-items:center;min-width:40px;height:40px;padding:0 8px;border-radius:999px;border:2.5px solid #fff;background:var(--primary);color:var(--on-primary,#fff);font:900 15px/1 var(--body);box-shadow:0 3px 8px rgba(0,0,0,.3);cursor:pointer}
/* MapLibre recoloca el marcador con su propio transform: una transición de transform aquí hacía "nadar" cada círculo 0,2 s tras el mapa y un transform en :hover no se aplicaba (el inline gana). El efecto de pulsar va en el número de dentro. */
.clu span{display:block;transition:transform .2s var(--spring)}
.clu:hover span{transform:scale(1.12)}

/* ZIRPA-APP (Jorge 8-oct, prueba): un museo con varios planes en la misma franja, en una sola tarjeta: el lugar arriba con
   su dirección debajo y sus planes dentro, en fichas redondeadas de un tono más oscuro del color de la tarjeta (no rosado) */
.pgcard{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:12px} /* Jorge 18-oct: sin minmax(0,…) el carrusel de dentro medía más que la tarjeta en móviles estrechos (454 px en 328) y salían planes cortados */
.pghead{position:relative;display:grid;gap:4px;width:100%;text-align:left;font:inherit;color:var(--ink);padding:2px 30px 4px 2px}
.pghead>.ms:last-child{position:absolute;right:0;top:50%;transform:translateY(-50%);color:var(--ink-3)}
.pgtop{display:flex;align-items:center;gap:8px}
.pgtop small{font:700 12px/1 var(--body);color:var(--ink-2)}
.pghead b{font:800 17px/1.2 var(--display)}
.pgaddr{display:flex;align-items:flex-start;gap:4px;font:500 13px/1.3 var(--body);color:var(--ink-2)}
.pgaddr .ms{font-size:16px;color:var(--g)}
.pgcard .mini-list{display:grid;gap:6px}
.pgcard .minirow{background:color-mix(in oklab,var(--g) 24%,var(--surface));border-radius:var(--r-l)}
@media (hover:hover){.pgcard .minirow:hover{background:color-mix(in oklab,var(--g) 32%,var(--surface))}}
/* Jorge 17-oct: al tocar un plan de un lugar se hunde esa fila, no la tarjeta entera ni su marcador; el marcador, más pequeño */
.pgcard:active{transform:none}
.prow-w{position:relative}
.pgcard .prow{padding-right:48px;transition:background .2s,transform .18s var(--ease)}
.pgcard .prow:active,.pgcard .prow.pressing{transform:scale(.96)}
.pgcard .prow.pressing{transition:transform .6s var(--ease),background .6s var(--ease);background:color-mix(in oklab,var(--g) 36%,var(--surface))}
.pgcard .prow.saved-flash{box-shadow:0 0 0 2px var(--g)}
.save.mini{top:50%;right:4px;width:40px;height:40px;transform:translateY(-50%)}
.save.mini .bm{width:18px;height:18px}
/* Jorge 17-oct (opción 2): los planes de un lugar en carrusel; asoma el siguiente para que se vea que se desliza. Colores del tema
   (claro y oscuro), sin barra visible; con el ratón se arrastra (HSCROLL) y con el dedo no cambia de día (touchstart) */
/* .pgcard delante: .pgcard .mini-list (display:grid) era más específica y dejaba los planes en vertical (fallo del 17-oct) */
.pgcard .pgrail{display:flex;gap:8px}
.pgrail{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:12px;margin:0;padding:2px 12px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pgcard .pgrail::-webkit-scrollbar{display:none}
.pgcard .pgrail>.prow-w{flex:0 0 min(86%,300px);display:flex;scroll-snap-align:start} /* Jorge 18-oct: igual de anchas que las de «Próximamente» */
@media (min-width:600px){.pgcard .pgrail>.prow-w{flex-basis:280px}}
.pgcard .pgrail .prow{grid-template-columns:1fr;align-content:start;gap:4px;min-height:100%;padding:12px 42px 12px 14px}
.pgcard .pgrail .prow b{justify-items:start;font-size:17px}
.pgcard .pgrail .save.mini{top:4px;transform:none}
/* Jorge 18-oct («el gradiente de abajo quítalo y pon el mismo que tenemos arriba… y el mismo para los laterales de los carrusel,
   tiene que ser como que se mete por debajo»): el borde de la barra de arriba (su sombra al bajar) también en la barra de
   pestañas. Colores de la sombra del tema (claro y oscuro). */
.bottomnav{box-shadow:var(--shadow-1-up)}
/* Jorge 18-oct («no quiero gradiente, solo que haga que se meta por debajo… tiene que ser la tarjeta la que se tiene que
   esconder»): los lados del carrusel son una tapa del mismo fondo que la tarjeta que lo contiene, por encima de los planes; al
   deslizar, el plan se esconde debajo, con una sombra muy fina en el borde. La tapa es siempre opaca (en el iPhone, al animar su
   opacidad, se veía el plan a través); lo que se anima es solo su sombra: la izquierda aparece al deslizar y la derecha se va al
   llegar al final (si el navegador ata animaciones al scroll; si no, solo la derecha). */
.railw{position:relative;background:inherit}
.railw::before,.railw::after{content:"";position:absolute;top:0;bottom:0;z-index:2;width:12px;pointer-events:none;background:inherit}
.railw::before{left:0}
.railw::after{right:0;box-shadow:-3px 0 4px -3px var(--edge-sh)}
.ns-nowbox .railw::before,.ns-nowbox .railw::after{width:14px}
@supports (animation-timeline:scroll()){
  .railw{timeline-scope:--zr-rail}
  .railw>:is(.pgrail,.nowrail){scroll-timeline:--zr-rail inline}
  .railw::before{animation:zr-edge-in linear both;animation-timeline:--zr-rail;animation-range:0% 2%}
  /* Jorge 21-oct (captura): con un solo plan el carrusel no se desplaza, la animación del borde derecho no corre y se quedaba la sombra fija
     como una raya junto a la tarjeta. La sombra solo la pone la animación (visible mientras queda carrusel por ver) */
  .railw::after{box-shadow:none;animation:zr-edge-out linear both;animation-timeline:--zr-rail;animation-range:98% 100%}
  @keyframes zr-edge-in{from{box-shadow:3px 0 4px -3px transparent}to{box-shadow:3px 0 4px -3px var(--edge-sh)}}
  @keyframes zr-edge-out{from{box-shadow:-3px 0 4px -3px var(--edge-sh)}to{box-shadow:-3px 0 4px -3px transparent}}
}
.pgcard .railw{margin:0 -12px}
.ns-nowbox .railw{margin:8px -14px 10px}
/* Jorge 17-oct: al hundirse una tarjeta (o una fila de un lugar), su marcador de guardar se hunde con ella: se escala el conjunto
   en vez de la tarjeta sola. Tocar el marcador no hunde la tarjeta. Sin :has (navegadores antiguos) se hunde solo la tarjeta. */
@supports selector(:has(*)){
  .ev-body,.pgcard .prow-w{transition:transform .2s var(--ease)}
  .ev-body:has(>.ev-card:not(.pgcard):active){transform:scale(.96)}
  .ev-body:has(>.ev-card:not(.pgcard).pressing){transform:scale(.96);transition-duration:.6s}
  .ev-body>.ev-card:not(.pgcard):is(:active,.pressing){transform:none}
  .pgcard .prow-w:has(>.prow:active){transform:scale(.96)}
  .pgcard .prow-w:has(>.prow.pressing){transform:scale(.96);transition-duration:.6s}
  .pgcard .prow-w>.prow:is(:active,.pressing){transform:none}
  /* Jorge (29-oct-2026): igual con un lugar: la tarjeta y su estrella se hunden juntas, también al mantener pulsado para guardarlo */
  .pfav-w{transition:transform .2s var(--ease)}
  .pfav-w:has(>.place:active){transform:scale(.96)}
  .pfav-w:has(>.place.pressing){transform:scale(.96);transition-duration:.6s}
  .pfav-w>.place:is(:active,.pressing){transform:none}
}
/* Al mantener pulsado un lugar se tiñe de su color y, al guardarse, se enmarca un momento: lo mismo que la tarjeta de un plan */
.place.pressing{transition:transform .6s var(--ease),background .6s var(--ease),box-shadow .25s;background:color-mix(in oklab,var(--g) 24%,var(--surface))}
.place.saved-flash{box-shadow:0 0 0 2px var(--g),var(--shadow-1)}
.place{-webkit-touch-callout:none}


/* Seasonal decoration stays inside the special: personal colours/navigation are preserved. */
.season-specials{display:grid;gap:12px;margin:16px auto;padding:0 16px;max-width:1120px;width:100%;box-sizing:border-box}
.season-specials[hidden]{display:none}
.season-card{--season-accent:#72509b;background:var(--surface,#fff);color:var(--ink,#25232a);border:1px solid currentColor;border-inline-start:6px solid var(--season-accent);border-radius:18px;padding:20px;min-width:0;overflow-wrap:anywhere}
.season-primary{background:linear-gradient(120deg,color-mix(in srgb,var(--season-accent) 13%,transparent),transparent)}
.season-card h2{font-size:1.4rem;line-height:1.2;margin:5px 0 10px}.season-secondary h2{font-size:1.1rem}
.season-kicker{font-size:.85rem;font-weight:800}.season-card p{margin:8px 0 14px;line-height:1.5}
.season-card summary{cursor:pointer;font-weight:800;padding:8px 0}.season-card ul{list-style:none;margin:8px 0;padding:0;max-height:360px;overflow:auto}
.season-card li+li{border-top:1px solid color-mix(in srgb,currentColor 15%,transparent)}
.season-card li button{display:block;text-align:start;width:100%;padding:12px 4px;background:none;border:0;color:inherit;font:inherit;cursor:pointer}
.season-card li span{display:block;font-size:.85rem;margin-top:4px}.season-card a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.season-card :focus-visible{outline:3px solid currentColor;outline-offset:3px}
.season-pilar{--season-accent:#c84261}.season-halloween{--season-accent:#dd7826}.season-navidad{--season-accent:#36865f}.season-semana-santa{--season-accent:#8860b6}.season-carnaval{--season-accent:#bf579c}.season-barrio{--season-accent:#c58b29}.season-verano{--season-accent:#25899c}
[data-theme=dark] .season-card{color:#f5f1f7;background-color:#24212b}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .season-card{color:#f5f1f7;background-color:#24212b}}
@media(min-width:760px){.season-specials{grid-template-columns:repeat(2,minmax(0,1fr))}.season-primary{grid-column:1/-1}}
@media(max-width:400px){.season-card{padding:14px}.season-specials{padding:0 10px}}

.season-has-pilar #v-agenda .fiesta:not(.hwcard){display:none}
.season-has-halloween #v-agenda .hwcard{display:none}

/* Daily counts never change the width of the Pilar category strip. */
.pilar-filters .chip small{display:inline-block;min-width:3ch;text-align:right;font-variant-numeric:tabular-nums}
.fact .hnote{display:block;margin-top:4px;font-style:normal;font-size:12px;color:var(--ink-2)}
/* Jorge 13-oct: Avisos como Google Calendar (2-avisos.js). Lista dentro de la tarjeta del interruptor y hoja para elegir */
.avlist .avitems>*{border-top:1px solid var(--outline-soft)}
.avrow{position:relative}
.avrow .lrow{grid-template-columns:24px 1fr;padding-right:60px}
.avrow .lrow>.ms:first-child,.avadd>.ms:first-child{color:var(--primary)}
.avx{position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--ink-3)}
@media (hover:hover){.avx:hover{background:color-mix(in oklab,var(--ink) 8%,transparent);color:var(--ink)}}
.avadd{grid-template-columns:24px 1fr}
.avadd b{color:var(--primary)}
.avin{animation:avIn .32s var(--ease) both}
.avout{animation:avOut .18s ease-in both}
@keyframes avIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes avOut{to{opacity:0;transform:translateX(24px)}}
.avcustom{margin:4px 0 8px;padding:16px;border-radius:var(--r-l);background:var(--container)}
.avline{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.avstep{display:flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-1)}
.avstep .iconbtn{width:40px;height:40px;background:var(--primary-c);color:var(--on-primary-c)}
.avstep .iconbtn:disabled{opacity:.38}
.avstep input{width:3.2ch;border:0;background:transparent;text-align:center;font:900 22px/1 var(--display);color:var(--ink);-moz-appearance:textfield;appearance:textfield}
.avstep input::-webkit-inner-spin-button,.avstep input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.avunits{gap:6px}
.avunits .chip{background:var(--surface);transition:background .2s,color .2s,border-color .2s,transform .15s}
.avunits .chip[aria-pressed="true"]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.avunits .chip:active{transform:scale(.96)}
.avhora{margin-top:14px}
.avhora .lrow{min-height:64px}
.avtime{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px 14px 54px;border-top:1px solid var(--outline-soft);font:700 15px/1.3 var(--body);color:var(--ink);animation:avIn .25s var(--ease) both}
.avtime input{min-height:44px;padding:6px 14px;border:0;border-radius:12px;background:var(--primary-c);color:var(--on-primary-c);font:900 20px/1 var(--display);color-scheme:light dark}
.avprev{margin:14px 2px 0;color:var(--ink-2);font-size:14px}
.avprev b{color:var(--ink)}
.avfoot{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:14px}
.avfoot .btn.primary:disabled{opacity:.45}
.avdel{color:var(--ink-2);margin-right:auto}
.avcustom.avin{animation-duration:.28s}
.avcustom[hidden],.avhora[hidden],.avtime[hidden],.avitems[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.avin,.avout,.avtime{animation:none}}

/* ZIRPA-APP (Jorge 13-oct): «Tu semana en Zaragoza» (6-semana.js) */
.semanadia{margin:18px 0 0}
.semanadia h3{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 6px;font:900 17px/1.2 var(--display)}
.semanadia h3 small{font:500 13px/1 var(--body);color:var(--ink-3)}
.semanarow{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;margin:0 0 6px;border:0;border-radius:var(--r-l,16px);background:var(--container);color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.semanarow b{min-width:46px;font:800 15px/1 var(--body)}
.semanarow .st{flex:1;display:flex;flex-direction:column;font:700 15px/1.25 var(--body)}
.semanarow small{font:500 13px/1.3 var(--body);color:var(--ink-3)}
.semanavacio{margin:0 0 8px;color:var(--ink-3);font:500 14px/1.4 var(--body)}
.semanaejem{position:relative;display:flex;gap:12px;align-items:center;width:100%;padding:12px;margin:0 0 8px;border:2px dashed var(--ink-3);border-radius:var(--r-xl);background:var(--surface,var(--container));color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.semanaejem img{width:84px;height:112px;object-fit:cover;border-radius:12px;flex:none}
.semanaejem .semanaico{display:grid;place-items:center;width:84px;height:112px;border-radius:12px;background:var(--container);flex:none}
.semanaejem .st{flex:1;display:flex;flex-direction:column;gap:2px}
.semanaejem b{font:900 16px/1.25 var(--display)}
.semanaejem small{font:500 13px/1.3 var(--body);color:var(--ink-2)}
.semanaetq{position:absolute;top:-10px;left:12px;padding:2px 8px;border-radius:99px;background:var(--ink);color:var(--bg,#fff);font:800 11px/1.4 var(--body);letter-spacing:.02em}

/* ZIRPA-APP (Jorge 13-oct): rótulo de carpa en la ficha de un recinto con varias carpas */
.mini-list .carpa-h{margin:10px 0 0;font:800 12px/1.3 var(--body)}
.mini-list .carpa-h:first-child{margin-top:0}
.mini-list .carpa-h span{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--gt,var(--container));color:var(--g,var(--ink))}

/* Rótulo de carpa (Espacio Zity): el mismo violeta en la ficha y en la ventanita del mapa, con aire respecto a las líneas de las filas */
.mini-list .carpa-h span,.mapday #peek .carpa-h span{background:color-mix(in oklab,#7b3fb0 20%,var(--surface));color:#6a2fa0}
:root[data-theme="dark"] .mini-list .carpa-h span,:root[data-theme="dark"] .mapday #peek .carpa-h span{color:#d9b8f5}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mini-list .carpa-h span,:root:not([data-theme="light"]) .mapday #peek .carpa-h span{color:#d9b8f5}}
.mapday #peek .carpa-h{margin:16px 0 6px;font:800 12px/1.3 var(--body)}
.mapday #peek .carpa-h:first-of-type{margin-top:8px}
.mapday #peek .carpa-h+.peekrow{border-top:0}
.mapday #peek .carpa-h span{display:inline-block;padding:3px 10px;border-radius:999px}

/* «Cerca de aquí»: cada sitio abre su ficha */
.near li{padding:0;display:block}
.near .nearrow{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;width:100%;padding:10px 4px;text-align:left;font:inherit;color:inherit;border-radius:var(--r-s,8px);background:none;border:0;cursor:pointer;text-decoration:none}
.near .nearrow:hover,.near .nearrow:focus-visible{background:var(--container)}
.near .nearrow>.ms{color:var(--ink-3)}
/* «Ahora» (Jorge 14-oct): chip verde con punto vivo, en el mapa y junto a «Hoy» */
/* «Ahora» en el mapa: los planes en marcha o que empiezan pronto llevan halo verde */

/* Agenda en columnas (≥768): la página no se mueve y cada columna tiene su propio scroll. Así la barra del navegador del iPad
   no se esconde ni sube con la lista, y mover una columna nunca mueve la otra (Jorge 15-oct). 1-core.js: pane() */
@media (min-width:768px){
  html.pane-cols,html.pane-cols body{height:100vh;height:100dvh;overflow:hidden}
  html.pane-cols{--pane-h:calc(100vh - var(--top-h) - var(--safe-t) - var(--nav-h) - var(--safe-b));--pane-h:calc(100dvh - var(--top-h) - var(--safe-t) - var(--nav-h) - var(--safe-b))}
  html.pane-cols #views{height:var(--pane-h);overflow:hidden}
  html.pane-cols .main{padding-bottom:0}
  html.pane-cols #views>.view{height:100%}
  html.pane-cols .agenda-split{height:100%;box-sizing:border-box;padding-top:0}
  html.pane-cols .daysec>h2{top:var(--band)}
}
@media (min-width:900px){
  html.pane-cols{--pane-h:calc(100vh - var(--top-h) - var(--safe-t));--pane-h:calc(100dvh - var(--top-h) - var(--safe-t))}
}
@media (min-width:768px) and (max-width:1023px){
  html.pane-cols .agenda-split{overflow-y:auto;overscroll-behavior:contain;align-content:start;padding-top:12px;scrollbar-width:thin}
  /* Jorge 20-oct: Chrome pega la cabecera del día por debajo del relleno de la columna que se desplaza y por ese hueco asomaban las tarjetas: se resta el relleno */
  html.pane-cols .agenda-split .daysec>h2{top:calc(var(--band) - 12px)}
  html.pane-cols .side{top:12px;height:calc(var(--pane-h) - 24px)}
}
@media (min-width:1024px){
  html.pane-cols .agenda-left,html.pane-cols .agenda-col{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-top:20px;box-sizing:border-box}
  /* Jorge (15 y 16-oct-2026): la barra de desplazamiento de la lista se pegaba al tirador del mapa (dos rayas juntas), en Chrome de
     Windows quedaba pegada a las tarjetas y en la tableta flotaba encima de su borde. Las columnas no llevan barra: se mueven igual con
     el dedo, la rueda, el trackpad, el teclado y las flechas ⌃⌄, y en el hueco solo queda el tirador del mapa. */
  html.pane-cols .agenda-left,html.pane-cols .agenda-col{scrollbar-width:none}
  html.pane-cols .agenda-col .daysec>h2{top:calc(var(--band) - 20px)}
  html.pane-cols .agenda-left::-webkit-scrollbar,html.pane-cols .agenda-col::-webkit-scrollbar{display:none}
  html.pane-cols .agenda-left{position:static;max-height:none;top:auto}
  /* 8 px: el tirador del mapa entra 8 px en la columna, así nunca queda encima de las tarjetas */
  html.pane-cols .agenda-col{padding-right:8px}
  html.pane-cols .side{position:relative;top:auto;height:100%;margin-top:0;box-sizing:border-box}
}

/* Pilares, Lugares y Mis planes con el mapa al lado: igual que la agenda, la columna de la izquierda se mueve sola */
@media (min-width:768px){
  html.pane-cols .tab-split{height:100%;box-sizing:border-box;padding-top:0}
  /* Pilares, Lugares y Mis planes: sin barra de desplazamiento pegada a las tarjetas, como la agenda (Jorge 16-oct-2026) */
  html.pane-cols .tab-col{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;padding-top:12px;box-sizing:border-box}
  html.pane-cols .tab-col::-webkit-scrollbar{display:none}
  html.pane-cols .tab-split>.side{position:relative;top:auto;height:100%;margin-top:0;box-sizing:border-box;padding:12px 16px 12px 0}
  html.pane-cols .tab-split>.side .map{height:100%}
}
@media (min-width:1024px){html.pane-cols .tab-col{padding-top:20px}}
@media (min-width:768px){html.pane-cols .tab-col .daysec>h2{top:calc(var(--band) - 12px)}}
@media (min-width:1024px){html.pane-cols .tab-col .daysec>h2{top:calc(var(--band) - 20px)}}
/* Mapa grande: la página no se mueve (antes quedaban 40 px de margen que la desplazaban y tapaban los filtros) */
html.v-mapa .main{padding-bottom:0}
@media (min-width:768px){html.v-mapa,html.v-mapa body{height:100vh;height:100dvh;overflow:hidden}}
/* Columnas con scroll propio (≥768): solo suben y bajan, como la lista de la agenda. Sin esto la columna de Pilares (con la tira de
   días un par de píxeles más ancha) se dejaba mover también hacia los lados y en diagonal (Jorge 15-oct) */
@media (min-width:768px){html.pane-cols .tab-col,html.pane-cols .agenda-col,html.pane-cols .agenda-left,html.pane-cols .agenda-split{overflow-x:hidden;overscroll-behavior-x:none}}

/* P4 (auditoría 14-oct-2026): editor rápido de un plan en la propia web (7-zirpa.js zirpaQuickEdit) */
.zq-lead{margin:4px 0 0;color:var(--ink-2)}
.zq-lock{display:flex;gap:6px;align-items:center;font:600 12px/1.3 var(--body);color:var(--ink-3)}
.zq-lock .ms{font-size:16px}
.zq-check{display:flex;gap:10px;align-items:center;font:600 14px/1.3 var(--body);color:var(--ink-2)}
.zq-check input{width:20px;height:20px;accent-color:var(--primary)}
/* Jorge 19-oct-2026 («el modo edición tiene que tener el mismo estilo material que el resto de la web»): el editor rápido va por
   grupos en paneles tonales con su título en mayúsculas pequeñas (como la agenda y Gestión), campos de esquina 12 con flecha
   propia, el estado en chips y «Publicar el texto» con el interruptor de la cuenta */
.zq-form{gap:12px}
.zq-sec{display:grid;gap:14px;padding:16px;border-radius:24px;background:var(--container)}
.zq-sec>h3{display:flex;align-items:center;gap:10px;margin:0;font:900 12px/1 var(--body);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-2)}
.zq-sec>h3::after{content:"";flex:1;height:1px;background:var(--outline);opacity:.5}
.fl select{-webkit-appearance:none;appearance:none;padding-right:44px;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='m7 10 5 5 5-5' fill='none' stroke='%23887' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 12px center}
.zq-sec .zq-check{justify-content:space-between;min-height:48px;font-weight:700;color:var(--ink)}
.zq-check input[role="switch"]{-webkit-appearance:none;appearance:none;flex:none;width:52px;height:32px;margin:0;border-radius:16px;border:2px solid var(--outline);cursor:pointer;
  background:radial-gradient(circle at 14px 50%,var(--ink-3) 7px,transparent 7.5px) var(--container-hi);transition:background-color .2s,border-color .2s}
.zq-check input[role="switch"]:checked{border-color:var(--primary);background:radial-gradient(circle at calc(100% - 14px) 50%,var(--on-primary) 10px,transparent 10.5px) var(--primary)}
.zq-check input[role="switch"]:disabled{opacity:.5}
.zq-chips{display:flex;flex-wrap:wrap;gap:8px}
.zq-chips .chip{cursor:pointer}
.zq-chips .chip:has(input:checked){background:var(--primary-c);border-color:transparent;color:var(--on-primary-c)}
.zq-chips .chip:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
.zq-sec .zq-lock{margin-top:-6px}
.formnote.bad{color:var(--primary);font-weight:700}

/* Velocidad (16-oct-2026): mientras llegan los datos, la agenda enseña ya su esqueleto. En un móvil con 4G normal la página
   estaba en blanco unos 4,8 s; el primer render de la app (renderInner) lo sustituye. */
.boot-skel{display:grid;gap:12px;max-width:760px;margin:0 auto;padding:24px 16px}
.boot-skel i{display:block;height:104px;border-radius:var(--r-m,16px);background:linear-gradient(90deg,var(--container,#f3e9ea) 30%,var(--surface,#fff) 50%,var(--container,#f3e9ea) 70%);background-size:300% 100%;animation:boot-skel 1.4s linear infinite}
.boot-skel i:first-child{height:44px;width:55%;border-radius:12px}
@keyframes boot-skel{from{background-position:100% 0}to{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.boot-skel i{animation:none}}

/* ---------- Dibujos por tipo detrás del texto (Jorge 16 y 17-oct-2026) ---------- */
/* Dibujos del sprite (1-ilustraciones.js). Los colores salen del tipo (--g, --gt) y del tema; cada forma lleva el suyo en línea. */
.il .a{fill:var(--il-1)} .il .b{fill:var(--il-2)} .il .c{fill:var(--il-3)} .il .d{fill:var(--il-4)} .il .g{fill:var(--il-bg)}
.il .sa,.il .sb,.il .sc,.il .sd{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.il .sa{stroke:var(--il-1)} .il .sb{stroke:var(--il-2)} .il .sc{stroke:var(--il-3)} .il .sd{stroke:var(--il-4)} .il .dash{stroke-dasharray:1 9}
.ill{--il-bg:var(--il-3);--il-1:var(--g,var(--primary));--il-2:color-mix(in oklch,#E8A33D 60%,var(--g,var(--primary)));--il-3:color-mix(in oklab,var(--gt,var(--container)) 28%,#fff);--il-4:color-mix(in oklab,var(--g,var(--primary)) 52%,var(--ink));display:block;overflow:hidden}
.ill svg{display:block;position:absolute;inset:0;width:100%;height:100%}
/* Detrás del texto: no ocupa sitio, no recibe toques y se difumina hacia donde empieza el texto */
/* Jorge 17-oct: «solo el plano y más difuminado, que no se vea tanto»: con su color ya se notaba demasiado */
.ill-back{position:absolute;z-index:-1;pointer-events:none;opacity:.14;-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000 100%);mask-image:linear-gradient(90deg,transparent 30%,#000 100%)}
.ev-card{isolation:isolate}
.ev-card>.ill-back{right:-6px;top:0;bottom:0;width:58%}
/* Planes de Halloween (Jorge 21-oct): colores fijos de Halloween y más difuminado (desenfoque y desvanecido hacia el texto) para que se lea bien */
.ill-back.hw{--il-1:#FF8A3D;--il-2:#FFC24D;--il-3:#FFE6D4;--il-4:#1A1220;--il-bg:transparent;filter:blur(1.2px)}
.ev-card>.ill-back.hw{opacity:.44;-webkit-mask-image:linear-gradient(90deg,transparent 22%,rgba(0,0,0,.55) 55%,#000 100%);mask-image:linear-gradient(90deg,transparent 22%,rgba(0,0,0,.55) 55%,#000 100%)}
.sheet .hero>.ill-back.hw{opacity:.3}
.sheet .hero{isolation:isolate}
.sheet .hero>.ill-back{left:0;top:0;width:100%;height:100%;opacity:.18;-webkit-mask-image:linear-gradient(90deg,transparent 35%,#000 95%);mask-image:linear-gradient(90deg,transparent 35%,#000 95%)}
html[data-theme="dark"] .ev-card>.ill-back{opacity:.18}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ev-card>.ill-back{opacity:.18}}
/* «Ahora» (Jorge 17-oct): su propio recuadro, encima de «Lo próximo», con los planes en marcha en carrusel dentro; colores del
   tema (claro y oscuro) */
.ns-nowbox{margin:0 0 8px;padding:12px 14px 2px;border-radius:var(--r-l);background:var(--primary-c);color:var(--on-primary-c);overflow:hidden}
.nowlab{display:flex;align-items:center;gap:8px;margin:0 0 2px;font:900 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--on-primary-c)}
.nowlab .ms{font-size:18px}
.nowlab small{font:800 12px/1 var(--body);letter-spacing:.02em;text-transform:none;opacity:.9}
.nowrail{display:flex;gap:10px;margin:0;padding:0 14px 2px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.nowrail::-webkit-scrollbar{display:none}
.nowc{position:relative;flex:0 0 min(86%,300px);padding:12px 14px;border-radius:var(--r-l);scroll-snap-align:start;text-align:left;display:flex;flex-direction:column;justify-content:flex-start;gap:4px;overflow:hidden;
  background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.nowc>*{position:relative}
.nowc b{font:800 13px/1.2 var(--body);opacity:.95;font-variant-numeric:tabular-nums}
.nowc strong{font:800 17px/1.2 var(--body);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nowc small{font:600 13px/1.3 var(--body);opacity:.88;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (min-width:600px){.nowc{flex-basis:280px}}
/* Ficha de lugar (Jorge 17-oct): la foto llena el ancho recortada, como en las tarjetas de Lugares, y no entera con los bordes
   difuminados (las verticales, como el Parque Grande, quedaban estrechas). Los carteles de los planes siguen enteros y la galería
   de varias fotos ya recortaba. */
.sheet[data-kind="place"] :not(.gal)>.media{aspect-ratio:var(--ar,4/3);max-height:72dvh}
.sheet[data-kind="place"] :not(.gal)>.media .blur{display:none}
.sheet[data-kind="place"] :not(.gal)>.media .full{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
/* Galería de un lugar: una foto por página, a todo el ancho, con el alto de la primera; se desliza de una en una */
.sheet[data-kind="place"] .gal{height:auto;aspect-ratio:var(--ar,4/3);max-height:72dvh;gap:0}
.sheet[data-kind="place"] .gal>.media{flex:0 0 100%;max-width:none;height:100%;scroll-snap-align:center}
.sheet[data-kind="place"] .gal>.media:last-child{scroll-snap-align:center}
.sheet[data-kind="place"] .gal .full{width:100%;height:100%;object-fit:cover}
.media .cred .n{opacity:.85;font-variant-numeric:tabular-nums}
/* En pantallas anchas la ficha es más estrecha que alta: una vertical se recorta un poco para no ocupar toda la altura */
@media (min-width:768px){.sheet[data-kind="place"] :is(:not(.gal)>.media,.gal){aspect-ratio:var(--ar-d,var(--ar,1.6))}}
/* Jorge 18-oct: al deslizar la lista para cambiar de día, en el hueco que dejan las tarjetas al apartarse asoma «Día siguiente» o
   «Día anterior»: va dentro de la columna de la lista, justo antes de ella y por detrás (#list encima); se coloca en el borde de esa
   columna (6-events.js), así en tableta y escritorio no lo tapan el fondo de la columna ni el mapa. Solo texto */
#swipehint{position:fixed;z-index:0;display:grid;gap:2px;max-width:40vw;color:var(--ink-2);font:900 15px/1.2 var(--body);pointer-events:none;transform:translateY(-50%);transition:opacity .12s}
#swipehint.sh-next{text-align:right}
#list{position:relative;z-index:1}
#swipehint small{font:700 13px/1.2 var(--body);color:var(--ink-3);text-transform:capitalize}
/* Jorge 18-oct («el efecto de abrir la ficha entera no es fluido»): entre la agenda y las páginas de cada plan o lugar
   (/eventos/…, /lugares/…) el navegador funde una página con la otra en vez de dar un salto en blanco (Chrome y Edge; en los
   demás, la carga de siempre). Las páginas del servidor llevan la misma regla (app/zr-shell.css). */
@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
/* Jorge 18-oct («Pídeselo a Zirpa y el resto de tarjetas tengan una separación estándar»): 16 px entre las tarjetas de arriba de la
   agenda en todas las pantallas */
:is(.ribbon,.quick.one,.iacard,.fiesta,.ns-nowbox,.nowstrip){margin-bottom:16px}
/* Jorge 18-oct: el botón de la cuenta siempre redondo (en una barra estrecha se encogía de ancho) */
.avatarbtn{flex:none;aspect-ratio:1/1}
/* Jorge 18-oct («los botones del mapa no se hunden más que dos»): también los iconos redondos (los del día del mapa, el calendario, la
   barra de arriba y la cuenta) se hunden al tocarlos */
:is(.iconbtn,.avatarbtn){transition:background .2s,color .2s,transform .18s var(--ease)}
:is(.iconbtn,.avatarbtn):active{transform:scale(.9)}
/* Jorge 18-oct: la fila de chips de la agenda solo se mueve de lado con el dedo */
@media (pointer:coarse){.quick.one{touch-action:pan-x}}
.sheet[data-kind="editor"] .sheet-foot .btn{padding-inline:16px;white-space:nowrap}

/* «Tu cuenta» (Jorge 19-oct): «Lo que te gusta» es un desplegable que dice cuántos tienes marcados */
details.likesd>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;list-style:none;cursor:pointer}
details.likesd>summary::-webkit-details-marker{display:none}
details.likesd>summary .st{display:grid;gap:2px}
details.likesd>summary .st h2{margin:0}
details.likesd>summary .st small{font:600 13px/1.3 var(--body);color:var(--ink-3)}
details.likesd>summary>.ms{color:var(--ink-3);transition:transform .2s var(--ease)}
details.likesd[open]>summary>.ms{transform:rotate(180deg)}
details.likesd>p{margin-top:6px}
/* Bienvenida (Jorge 19-oct): el mapa de la ciudad en 3D, difuminado, por detrás del texto en lugar del dibujo del Pilar; los gustos
   y el barrio juntos y más cortos; «Tenla a mano» más corta; y una cuarta página, «Hazte probador» */
.wl-p1{position:relative;isolation:isolate}
.wl-mapa{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
/* El rojo de arriba, opaco, se va volviendo translúcido hacia el mapa, que queda más abajo, y se apaga en el fondo (Jorge 20-oct) */
.wl-mapa::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--primary-c) 0,var(--primary-c) 30%,color-mix(in oklab,var(--primary-c) 55%,transparent) 48%,transparent 70%,transparent 90%,color-mix(in oklab,var(--bg) 55%,transparent) 100%)}
/* Legible (Jorge 20-oct): el mapa, casi apagado y más difuminado donde está el texto, y más claro abajo; el texto lleva un halo del color del fondo */
.wl-mapa::before{content:"";position:absolute;inset:0;background:var(--primary);opacity:.5;-webkit-mask:url(/v12/welcome-mapa.e6f1759092.webp) center calc(100% + 36px)/100% auto no-repeat,linear-gradient(180deg,rgba(0,0,0,.22) 0,rgba(0,0,0,.22) 58%,#000 86%);-webkit-mask-composite:source-in;mask:url(/v12/welcome-mapa.e6f1759092.webp) center calc(100% + 36px)/100% auto no-repeat,linear-gradient(180deg,rgba(0,0,0,.22) 0,rgba(0,0,0,.22) 58%,#000 86%);mask-composite:intersect;filter:blur(1.6px)}
.wl-p1 :is(.wl-lead,.wl-feats li,h2){text-shadow:0 0 8px var(--primary-c),0 0 16px var(--primary-c),0 0 2px var(--primary-c)}
.wl-p2 .wl-in{gap:12px}
.wl-p2 .likes{gap:6px}
.wl-p2 .likes .chip{min-height:34px;padding:2px 11px;font-size:13.5px;gap:5px}
.wl-p2 .likes .chip .ms{font-size:18px}
.wl-barrio{border-radius:var(--r-l);background:var(--container)}
.wl-barrio>summary{text-align:left;display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 14px;list-style:none;cursor:pointer}
.wl-barrio>summary::-webkit-details-marker{display:none}
.wl-barrio>summary>span:not(.ms){flex:1;display:grid}
.wl-barrio>summary b{font:800 16px/1.25 var(--body)}
.wl-barrio>summary small{font:600 12.5px/1.3 var(--body);color:var(--ink-3)}
.wl-barrio>summary>.ms:first-child{color:var(--primary)}
.wl-barrio>summary>.ms:last-child{color:var(--ink-3);transition:transform .2s var(--ease)}
.wl-barrio[open]>summary>.ms:last-child{transform:rotate(180deg)}
.wl-barrio .barrios{max-height:34vh;overflow-y:auto;padding:0 6px 8px}
.wl-barrio .brow[aria-checked="true"]{background:none}
.wl-p3 .wl-in{gap:12px}
.wl-p3 .wl-steps{gap:8px}
.wl-p3 .wl-steps small{display:none}
.wl-p4 .btn.primary{justify-self:start}
@media (prefers-reduced-motion:reduce){details.likesd>summary>.ms,.wl-barrio>summary>.ms:last-child{transition:none}}

/* Guía «Cómo usar ZIRPA» deslizante (misma pestaña que la bienvenida, un panel por truco) y aviso de proyecto personal */
.wl-g .wl-in{align-content:center;justify-items:start;min-height:70%}
.wl-gico{display:grid;place-items:center;width:96px;height:96px;border-radius:30px;background:var(--primary-c);color:var(--on-primary-c)}
.wl-gico .ms,.wl-gico svg.msvg{font-size:52px;width:52px;height:52px}
.wl-solo{display:grid;gap:8px;padding:14px 16px;border-radius:var(--r-l);background:var(--container)}
.wl-solo b{display:flex;align-items:center;gap:8px;font:800 15.5px/1.3 var(--body)}
.wl-solo b .ms{color:var(--primary);font-size:20px}
.wl-solo p{margin:0;font:600 14px/1.45 var(--body);color:var(--ink-2)}
.wl-solo .btns{display:flex;flex-wrap:wrap;gap:8px}
.wl-solo .btn{min-height:40px;padding:6px 14px}

/* Jorge 21-oct: la bienvenida de Halloween, como el recuadro de Halloween pero a pantalla completa: el mapa de Zaragoza difuminado por detrás, la iglesia de Belchite grande delante (más ancha que la pantalla, centrada en la puerta), telas con araña y el muñeco de la puerta */
.wl-p1.hw .wl-mapa{filter:blur(2.5px)}
.wl-p1.hw .hwweb{width:92px;height:92px;opacity:.42;stroke:#fff;z-index:0}
.wl-p1.hw .wl-in{position:relative;z-index:1}
.wl-p1.hw .hwspider{z-index:3}
.wl-p1.hw .hwspider.r{right:62px}
.wl-p1.hw .hw-art{overflow:hidden;margin-top:auto}
.wl-p1.hw .hw-art svg{width:124%;max-width:none;max-height:none;margin-left:-12%;display:block}
@media (max-height:720px){.wl-p1.hw .wl-lead{display:none}.wl-p1.hw .hw-art svg{width:112%;margin-left:-6%}}
@media (min-width:520px){.wl-p1.hw .hw-art svg{width:100%;margin-left:0;max-height:200px}}
/* Jorge 29-oct: en escritorio el dibujo (150 px) va pegado abajo: si la ventana es baja, se recorta el cielo y no el suelo y la iglesia; y con menos
   de 860 px de alto se quita el párrafo, como ya pasaba por debajo de 720 */
@media (min-width:900px){.wl-p1.hw .hw-art{display:flex;align-items:flex-end;justify-content:center}.wl-p1.hw .hw-art svg{flex:none;max-height:150px}}
@media (min-width:900px) and (max-height:860px){.wl-p1.hw .wl-lead{display:none}}
/* Jorge 21-oct: la fecha del día entera del mismo color (el «26» y «de octubre») en los temas de Halloween, y las letras en mayúsculas como en Truco o trato */
html:is([data-palette="calabaza"],[data-palette="truco"]) .dayhead :is(h1,.h1) span{color:inherit}
.wl-p1.hw{--len:84px}
/* Jorge 22-oct: historial de búsquedas bajo el buscador vacío */
.hist{margin-bottom:6px}
.hist h4{display:flex;align-items:center;justify-content:space-between;margin:8px 0 0}
.hist .link{background:none;border:0;padding:6px 8px;margin:-6px -8px -6px 0;border-radius:var(--r-s,8px);color:var(--primary);font:700 12.5px/1 var(--body);cursor:pointer}
.hist .chip .ms{width:16px;height:16px;margin-right:6px;opacity:.7}

/* Jorge 26-oct-2026: etiqueta de plazas (reservar, pocas, agotado). Colores del sistema, claro y oscuro */
.tag.plazas.reserva,.ev-card .tag.plazas.reserva{background:var(--primary-c);color:var(--on-primary-c)}
.tag.plazas.pocas,.ev-card .tag.plazas.pocas{background:var(--warn-c);color:var(--warn)}
.tag.plazas.agotado,.ev-card .tag.plazas.agotado{background:var(--ink);color:var(--surface,var(--bg))}
.notice.plazas.reserva{background:var(--primary-c);color:var(--on-primary-c)}

/* Jorge 29-oct-2026 (prueba de estilo Visant): al bajar, la barra de arriba se vuelve de cristal; capa aparte para no volver la barra contenedor de lo fijo que lleva dentro */
.topbar{isolation:isolate}
.topbar::before{content:"";position:absolute;inset:0;z-index:-1;background:color-mix(in oklab,var(--bg) 74%,transparent);-webkit-backdrop-filter:saturate(1.5) blur(16px);backdrop-filter:saturate(1.5) blur(16px);opacity:0;transition:opacity .2s;pointer-events:none}
.topbar.lifted{background:transparent}
.topbar.lifted::before{opacity:1}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.topbar::before{background:var(--bg)}}
/* … y la agenda se ve borrosa detrás de una ficha abierta */
.scrim{-webkit-backdrop-filter:blur(8px) saturate(1.2);backdrop-filter:blur(8px) saturate(1.2)}
/* Vista previa al dejar el ratón sobre un plan (solo ordenador): cartel, título, sitio y el principio del texto */
.peekcard{position:fixed;z-index:58;width:300px;padding:10px;border-radius:22px;background:var(--surface);border:1px solid var(--outline-soft);box-shadow:0 2px 6px rgba(0,0,0,.08),0 24px 48px -16px rgba(0,0,0,.28);pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .18s,transform .18s}
.peekcard.on{opacity:1;transform:none}
.peekcard img{display:block;width:100%;height:170px;object-fit:cover;border-radius:14px;background:var(--container)}
.peekcard b{display:block;margin:10px 6px 0;font:800 15px/1.25 var(--display);color:var(--ink)}
.peekcard small{display:block;margin:4px 6px 2px;font:700 12px/1.3 var(--body);color:var(--ink-3)}
.peekcard p{margin:6px 6px 4px;font:500 13.5px/1.45 var(--body);color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
@media (prefers-reduced-motion:reduce){.peekcard{transition:none}}

/* ZIRPA-APP: the top-bar Apariencia menu, Tu cuenta › Personalización and the «Personalizado» editor (v12/src/js/5-tema.js).
   Joined after app.css by scripts/build-v12.mjs */
.tema-ed{display:none;gap:12px;margin:8px 0 2px;padding:12px;border-radius:14px;background:var(--container)}
html[data-palette="personal"] .tema-ed{display:grid}
.tema-note{margin:0;font-size:12px;line-height:1.35;color:var(--ink-3)}
.tema-icon{display:flex;gap:8px;align-items:flex-start;margin:12px 4px 0;font-size:12.5px;line-height:1.35;color:var(--ink-3)}
.tema-icon .ms{flex:none;font-size:18px;color:var(--ink-2)}


/* Top-bar menu: title with a close X (44 px), a scrim behind it, and the link to Tu cuenta */
.pop-scrim{position:fixed;inset:0;z-index:74;background:color-mix(in srgb,var(--scrim) 40%,transparent);animation:fade .2s ease both}
.pop-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-6px -6px 6px 0}
.pop-head h4{margin:0 4px}
.pop-x{margin-left:auto}
.popover .pop-head+h4{font:800 13px/1.2 var(--body);color:var(--ink-2)}
.popover .seg3+h4{font:800 13px/1.2 var(--body);color:var(--ink-2)}
.pop-more{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;width:100%;min-height:44px;margin-top:8px;padding:6px 10px;border-radius:14px;text-align:left;font:800 13px/1.25 var(--body);color:var(--primary)}
.pop-more:hover{background:var(--container)}
.pop-more .ms{font-size:20px}

/* Tu cuenta › Personalización */
.card.pz{padding:14px}
/* ZIRPA-APP (Jorge 3-oct, captura 02): la cabecera «Paleta que usas / En el menú» va en su propia fila, separada del título
   y de la lista, en letra normal y con cada nombre sobre su columna (el de la derecha, centrado sobre las casillas) */
.pz-lead{margin:0 0 14px;color:var(--ink-2);line-height:1.45}
.card.pz>.pz-h{margin-top:20px}
.pz-sub{margin:0 4px 14px;font-size:13px;line-height:1.4;color:var(--ink-3)}
.pz-cols{display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:end;gap:2px;margin:0 0 6px;padding:0 0 8px 10px;border-bottom:1px solid var(--outline-soft);font:800 12.5px/1.25 var(--body);color:var(--ink-2)}
.pz-cols>span:last-child{text-align:center}
.pz-row{display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:center;gap:2px}
.pz-row>.pz-chk{justify-self:center}
.pal.pz-pal{grid-template-columns:auto auto 1fr;gap:12px}
/* M3 radio: the palette in use */
.pz-radio{position:relative;width:20px;height:20px;border-radius:50%;border:2px solid var(--ink-2);transition:border-color .15s var(--ease)}
.pz-radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--primary);transform:scale(0);transition:transform .15s var(--ease)}
.pal[aria-pressed="true"] .pz-radio{border-color:var(--primary)}
.pal[aria-pressed="true"] .pz-radio::after{transform:scale(1)}
/* M3-style round checkbox: the palette is in the top-bar menu */
.pz-chk{position:relative;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:transparent}
.pz-chk::before{content:"";position:absolute;width:24px;height:24px;border-radius:50%;border:2px solid var(--ink-2);box-sizing:border-box;transition:background .15s var(--ease),border-color .15s var(--ease)}
.pz-chk .ms{position:relative;font-size:18px;font-weight:700;transform:scale(.4);opacity:0;transition:transform .15s var(--ease),opacity .15s}
.pz-chk:hover::after{content:"";position:absolute;inset:4px;border-radius:50%;background:color-mix(in oklab,var(--ink) 8%,transparent)}
.pz-chk[aria-checked="true"]::before{background:var(--primary);border-color:var(--primary)}
.pz-chk[aria-checked="true"] .ms{color:var(--on-primary);transform:none;opacity:1}
.pz-chk:disabled{cursor:not-allowed}
.pz-chk:disabled::before{border-color:var(--outline);opacity:.6}
.pz-chk:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.pz-hint{display:flex;gap:8px;align-items:center;margin:8px 6px 4px;font:700 12.5px/1.3 var(--body);color:var(--ink-3)}
.pz-hint .ms{font-size:18px}
.pz-hint.full{color:var(--on-primary-c);background:var(--primary-c);padding:8px 10px;border-radius:12px;margin:8px 0 4px}

/* «Personalizado» editor: one row per colour, opening its wheel */
.tema-row{display:grid}
.tema-row+.tema-row{border-top:1px solid var(--outline-soft)}
.tema-head{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;min-height:48px;padding:4px 2px;text-align:left;color:var(--ink)}
.tema-head>.ms{color:var(--ink-3);transition:transform .2s var(--ease)}
.tema-head[aria-expanded="true"]>.ms{transform:rotate(180deg)}
.tema-dot{width:26px;height:26px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.18)}
.tema-dot.auto{background:linear-gradient(135deg,var(--surface) 50%,var(--primary-c) 50%);box-shadow:inset 0 0 0 1px var(--outline)}
.tema-lbl{font:800 13.5px/1.2 var(--body);color:var(--ink)}
.tema-lbl small{font-weight:600;color:var(--ink-3)}
.tema-hex{font:700 12px/1 var(--body);color:var(--ink-3);font-variant-numeric:tabular-nums}
.tema-body{display:grid;gap:12px;justify-items:center;padding:6px 0 12px}
.tema-body[hidden]{display:none}
/* The wheel: hue around (conic), white towards the centre (saturation), black on top for the brightness */
.tema-wheel{position:relative;width:min(220px,100%);aspect-ratio:1;border-radius:50%;touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none;
  background:radial-gradient(circle closest-side,#fff,rgba(255,255,255,0) 100%),conic-gradient(#F00,#FF0,#0F0,#0FF,#00F,#F0F,#F00);
  box-shadow:0 0 0 1px rgba(0,0,0,.12),0 2px 8px rgba(0,0,0,.12)}
.tema-dim{position:absolute;inset:0;border-radius:50%;background:#000;opacity:calc(1 - var(--v,1));pointer-events:none}
.tema-knob{position:absolute;left:calc(50% + var(--x,0%));top:calc(50% + var(--y,0%));width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;display:grid;place-items:center;cursor:grab;outline:none}
.tema-knob::before{content:"";width:28px;height:28px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.3),0 2px 6px rgba(0,0,0,.35);transition:transform .12s var(--ease)}
.tema-wheel.drag .tema-knob::before{transform:scale(1.18)}
.tema-knob:focus-visible::before{box-shadow:0 0 0 1px rgba(0,0,0,.3),0 0 0 3px var(--surface),0 0 0 5px var(--primary)}
/* Brightness */
.tema-bright{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;width:min(260px,100%);font:800 12.5px/1 var(--body);color:var(--ink-2)}
.tema-bright input{-webkit-appearance:none;appearance:none;width:100%;height:44px;margin:0;background:transparent;cursor:pointer}
.tema-bright input::-webkit-slider-runnable-track{height:12px;border-radius:6px;background:linear-gradient(90deg,#000,var(--c,#fff));box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.tema-bright input::-moz-range-track{height:12px;border-radius:6px;background:linear-gradient(90deg,#000,var(--c,#fff))}
.tema-bright input::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-7px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.3),0 2px 5px rgba(0,0,0,.3)}
.tema-bright input::-moz-range-thumb{width:24px;height:24px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.3),0 2px 5px rgba(0,0,0,.3)}
.tema-bright input:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}
/* Quick colours under the wheel */
.tema-sws{display:grid;grid-template-columns:repeat(6,minmax(0,36px));gap:8px;justify-content:center;width:100%}
.tema-sw{position:relative;width:100%;aspect-ratio:1;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.14);
  display:grid;place-items:center;cursor:pointer;transition:box-shadow .15s var(--ease),transform .15s var(--ease)}
.tema-sw:active{transform:scale(.92)}
.tema-sw[aria-pressed="true"]{box-shadow:inset 0 0 0 1px rgba(0,0,0,.14),0 0 0 2px var(--container),0 0 0 4px var(--primary)}
.tema-sw[aria-pressed="true"]::after{content:"";width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px rgba(0,0,0,.35)}
.tema-sw.auto{background:linear-gradient(135deg,var(--surface) 50%,var(--primary-c) 50%);box-shadow:inset 0 0 0 1px var(--outline)}
.tema-sw.auto[aria-pressed="true"]{box-shadow:inset 0 0 0 1px var(--outline),0 0 0 2px var(--container),0 0 0 4px var(--primary)}
@media (pointer:coarse){.tema-sw::before{content:"";position:absolute;inset:-4px}}
@media (prefers-reduced-motion:reduce){.tema-sw,.pz-chk::before,.pz-chk .ms,.pz-radio::after,.tema-head>.ms,.tema-knob::before{transition:none}.tema-sw:active{transform:none}.pop-scrim{animation:none}}

/* ZIRPA-APP (Jorge 3-oct): Tu cuenta › Personalización › «Abrir planes» (4-ficha.js), radios como los de las paletas */
.pz-ficha{margin-top:2px}
.card.pz>h3#pz-ficha-h{margin-top:18px}
.pz-ficha .pal>.ms{visibility:visible;color:var(--ink-2);font-size:22px}
.pz-ficha .pal[aria-checked="true"]{border-color:var(--primary);background:var(--container)}
.pz-ficha .pal[aria-checked="true"] .pz-radio{border-color:var(--primary)}
.pz-ficha .pal[aria-checked="true"] .pz-radio::after{transform:scale(1)}
.pz-ficha .pal[aria-checked="true"]>.ms{color:var(--primary)}
.pz-ficha .pal:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}

/* ZIRPA-APP (Jorge 3-oct): prueba «Expandir la tarjeta» (4-ficha.js). La ficha de un plan o lugar (.ct) ocupa toda la
   pantalla en el móvil y es un panel grande centrado desde 840 px. La X (44 px) y la cabecera compacta siguen igual. */
.sheet.ct{top:0;bottom:0;left:0;right:0;max-width:none;margin:0;max-height:none;height:auto;border-radius:0;animation:none;box-shadow:none}
.sheet.ct>.grab{display:none}
.sheet.ct .sheet-scroll{flex:1;padding-top:0}
.sheet.ct .sheet-top{top:0;padding-top:calc(8px + var(--safe-t));margin-bottom:calc(-52px - var(--safe-t))}
.sheet.ct .sheet-top+.hero{padding-top:calc(18px + var(--safe-t))}
.sheet.ct .sheet-top+.media{margin-top:var(--safe-t)}
.sheet.ct.scrolled .sheet-top::before,.sheet.ct.has-hero .sheet-top::before{inset:-8px -20px -6px}
.sheet.ct.has-hero.scrolled .sheet-top::after{content:none}
@media (min-width:840px){
  .sheet.ct{top:24px;bottom:24px;left:0;right:0;margin:0 auto;width:min(760px,calc(100% - 48px));max-width:none;border-radius:28px;box-shadow:var(--shadow-2)}
  .sheet.ct .sheet-top{padding-top:16px;margin-bottom:-60px}
  .sheet.ct .sheet-top+.media{margin-top:0}
  .sheet.ct .hero,.sheet.ct .sheet-top+.hero{padding-top:22px}
}
/* Mientras crece o encoge: los bordes los pone el recorte (clip-path); la sombra de color de fondo rellena lo que queda
   fuera del panel (la tarjeta puede estar fuera de él en la tableta) y el contenido no se corta en el borde del panel */
.sheet.ct.ct-run{overflow:visible;box-shadow:0 0 0 200vmax var(--surface);will-change:clip-path}
.sheet.ct.ct-run .sheet-scroll{transform-origin:0 0;will-change:transform,opacity}
.ct-ghost{position:absolute;z-index:9;margin:0;transform-origin:0 0;pointer-events:none;transition:none;animation:none;will-change:transform,opacity}
.ct-src{visibility:hidden}
