/* Cartilla (del prototipo). Mapa con Leaflet (assets/vendor/leaflet). */
.filtros{padding:18px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;align-items:end}
.res{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:20px;align-items:start}
.mapa{position:sticky;top:96px;height:560px;border-radius:18px;overflow:hidden;background:var(--ph);border:1px solid var(--line);z-index:0}
.admin-bar .mapa{top:128px}
.mapa-sin-js{padding:20px}
.pin-mapa{background:var(--brand-bg);border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 6px rgba(0,0,0,.3)}
.pin-mapa.guardia{background:var(--accent-bg)}
.prestador{transition:box-shadow .3s}
.prestador.resaltada{box-shadow:0 0 0 3px var(--accent-bg)}
.link-btn{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--brand-fg);cursor:pointer;text-decoration:underline}
.leaflet-container{font:inherit}
@media (max-width:860px){.mapa{position:relative;top:0;height:320px;order:-1}}

/* Buscar y Cerca mío en la misma fila y a la altura de los campos */
.filtros .botones{flex-wrap:nowrap}
.filtros .botones .btn{min-height:48px;border-radius:12px}
/* Panel «Filtros» y «Ver en mapa»: solo en el celular y con JavaScript (sin JS se ve todo, como antes).
   La clase .js la pone header.php antes de dibujar, para que la página no salte al cargar. */
.filtros-extra{display:contents}
.sheet-cab,.sheet-aplicar,.ver-mapa,.filtros-btn{display:none}
@media (max-width:767px){
  .filtros{grid-template-columns:1fr}
  .filtros .botones .btn{flex:1 1 0;padding-inline:12px}
  .js .filtros-btn{display:inline-flex}
  .js .filtros .filtros-extra{display:none}
  .js .filtros .filtros-extra.abierto{display:grid;gap:14px;position:fixed;left:0;right:0;bottom:0;z-index:70;max-height:88vh;overflow:auto;background:var(--surface);border-radius:18px 18px 0 0;padding:8px 16px calc(16px + env(safe-area-inset-bottom,0px));box-shadow:0 0 0 100vmax var(--shade)}
  .js .filtros .filtros-extra.abierto .sheet-cab{display:flex;justify-content:space-between;align-items:center}
  .js .filtros .filtros-extra.abierto .burger{display:flex}
  .js .filtros .filtros-extra.abierto .sheet-aplicar{display:inline-flex;min-height:48px}
  .sheet-tit{font-size:22px}
  /* Tipos en una sola fila que se desliza, para que la lista arranque antes */
  .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:-16px;padding-inline:16px}
  .chip-link{flex:none}
  .js .ver-mapa{display:inline-flex;justify-self:start}
  .js .ver-mapa[aria-expanded="true"]{background:var(--brand-soft)}
  .js .mapa:not(.abierto){display:none}
}
body.sheet-abierto{overflow:hidden}

/* Ventana «Informar un error» */
.dialogo{border:0;border-radius:18px;padding:22px;width:min(520px,calc(100% - 32px));max-height:calc(100% - 32px);background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.dialogo::backdrop{background:var(--shade)}
.dialogo form{display:grid;gap:12px}
.dialogo-cab{display:flex;justify-content:space-between;align-items:center;gap:10px}
.dialogo-cab h2{font-size:22px}
.dialogo-cab .burger{display:flex}
#c-error-nombre{font-size:15px}

/* Ficha de cada prestador */
.pr-cab{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.pr-nombre{font-size:20px;font-weight:600;line-height:1.25}
.pr-km{font-size:14px;white-space:nowrap}
.pr-chips{display:flex;flex-wrap:wrap;gap:6px}
.pr-chips:empty{display:none}
.pr-dato{display:flex;gap:8px;align-items:flex-start;font-size:15px}
.pr-dato .i{flex:none;margin-top:3px;color:var(--brand-fg)}
.pr-tels{display:flex;flex-wrap:wrap;gap:4px 14px}
.pr-tels a{font-weight:700;color:var(--brand-fg);text-underline-offset:3px}
.pr-horarios{font-size:14px}
.pr-esp{border-top:1px solid var(--line);padding-top:10px}
.pr-esp-lista{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.pr-esp-lista li{font-size:13px;line-height:1.3;padding:4px 10px;border-radius:999px;background:var(--ph);border:1px solid var(--line)}
.pr-esp-lista li.pr-esp-hit{background:var(--brand-bg);border-color:var(--brand-bg);color:var(--brand-on);font-weight:600}
.pr-mas{margin-top:8px}
.pr-mas summary{cursor:pointer;font-size:14px;font-weight:700;color:var(--brand-fg);width:max-content;max-width:100%}
.pr-mas[open] summary{margin-bottom:8px}
.filtros select:disabled{opacity:.6;cursor:not-allowed}
