/* Sanidad Mapa – vista pública */
.sanmapa {
	--azul: #0a0aa8;
	--celeste: #0795fe;
	--tinta: #14183a;
	--gris: #5d6378;
	--linea: #e3e6ef;
	--fondo: #f4f6fb;
	--sanmapa-alto: 720px;
	display: grid;
	grid-template-columns: minmax(0, 1.65fr) minmax(340px, 1fr);
	height: var(--sanmapa-alto);
	background: var(--fondo);
	font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
	color: var(--tinta);
	border-radius: 0;
	overflow: hidden;
	box-sizing: border-box;
}
.sanmapa *, .sanmapa *::before, .sanmapa *::after { box-sizing: border-box; }

/* ---- mapa ---- */
.sanmapa__mapa-wrap { position: relative; min-height: 0; z-index: 0; isolation: isolate; }
.sanmapa__mapa { position: absolute; inset: 0; background: #dfe7ef; }
.sanmapa__proveedor {
	position: absolute; z-index: 1000; top: 12px; left: 50%; transform: translateX(-50%);
	display: flex; background: #fff; border-radius: 999px; padding: 4px; box-shadow: 0 2px 10px rgba(20, 24, 58, .18);
}
.sanmapa__proveedor button {
	border: 0; background: transparent; color: var(--gris); font-weight: 500; font-size: 12px; line-height: 1; font-family: inherit;
	padding: 8px 14px; border-radius: 999px; cursor: pointer; letter-spacing: .02em;
}
.sanmapa__proveedor button.is-on { background: var(--azul); color: #fff; }
.sanmapa__aviso {
	position: absolute; z-index: 1001; left: 12px; right: 12px; bottom: 12px; background: #fff8e1; color: #6b4e00;
	border: 1px solid #f1d27a; border-radius: 10px; padding: 10px 14px; font-size: 13px;
}

/* ---- panel derecho ---- */
.sanmapa__panel { display: flex; flex-direction: column; min-height: 0; border-left: 1px solid var(--linea); background: var(--fondo); }
.sanmapa__cabecera { padding: 22px 22px 12px; background: #0795fe; color: #fff; } /* mismo celeste que la barra del mapa del pie */
.sanmapa__titulo {
	margin: 0 0 14px; font-size: 22px; font-weight: 600; line-height: 1.15; letter-spacing: .06em; text-transform: uppercase; color: #fff;
}
.sanmapa__buscar { position: relative; }
.sanmapa__buscar svg { position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); fill: var(--gris); pointer-events: none; }
.sanmapa .sanmapa__q {
	width: 100%; height: 46px; border: 0; border-radius: 10px; padding: 0 14px 0 42px; font-weight: 400; font-size: 15px; line-height: 1; font-family: inherit;
	color: var(--tinta); background: #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .12); outline: none;
}
.sanmapa .sanmapa__q:focus { box-shadow: 0 0 0 3px rgba(255, 255, 255, .6); }
.sanmapa__combos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 14px 0 10px; }
.sanmapa .sanmapa__combo { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.sanmapa .sanmapa__combo span {
	color: #fff; font-family: 'Poppins', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; line-height: 1.1;
}
.sanmapa .sanmapa__combo select {
	width: 100%; height: 40px; margin: 0; padding: 0 10px; border: 0; border-radius: 6px; background-color: #fff; color: #000;
	font-family: 'Poppins', sans-serif; font-size: 14px; font-weight: 400; text-transform: none; box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}
.sanmapa__fila { display: flex; justify-content: flex-end; }
.sanmapa__cerca {
	display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 12px; cursor: pointer; white-space: nowrap;
	border: 1px solid rgba(255, 255, 255, .45); border-radius: 8px; background: transparent; color: #fff; font-weight: 500; font-size: 13px; line-height: 1; font-family: inherit;
}
.sanmapa__cerca svg { width: 16px; height: 16px; fill: currentColor; }
.sanmapa__cerca.is-on { background: #fff; border-color: #fff; color: #0795fe; }
.sanmapa__cerca.is-loading { opacity: .6; cursor: progress; }
.sanmapa__conteo { margin: 10px 0 0; font-size: 12.5px; letter-spacing: .04em; color: rgba(255, 255, 255, .8); }

.sanmapa__lista { position: relative; flex: 1; min-height: 0; overflow-y: auto; padding: 14px 14px 24px; scroll-behavior: smooth; }
.sanmapa__lista::-webkit-scrollbar { width: 8px; }
.sanmapa__lista::-webkit-scrollbar-thumb { background: #c8cdda; border-radius: 8px; }
.sanmapa__vacio { text-align: center; padding: 40px 16px; color: var(--gris); font-size: 14px; }
.sanmapa__vacio strong { display: block; margin-bottom: 12px; color: var(--tinta); }
.sanmapa__limpiar { border: 1px solid var(--azul); color: var(--azul); background: #fff; border-radius: 8px; padding: 8px 14px; cursor: pointer; font-family: inherit; }

/* ---- tarjetas ---- */
.sanmapa-card {
	--c: var(--celeste);
	position: relative; display: flex; flex-direction: column; margin-bottom: 12px; overflow: hidden;
	background: #fff; border-radius: 14px; border: 1px solid var(--linea);
	box-shadow: 0 1px 2px rgba(20, 24, 58, .04); transition: box-shadow .18s, transform .18s, border-color .18s;
}
.sanmapa-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--c); }
.sanmapa-card:hover { box-shadow: 0 8px 24px rgba(20, 24, 58, .10); transform: translateY(-1px); }
.sanmapa-card.is-activa { border-color: var(--c); box-shadow: 0 0 0 2px var(--c), 0 10px 26px rgba(20, 24, 58, .12); }
.sanmapa-card__foto { height: 120px; background: #e9edf5 center / cover no-repeat; margin-left: 5px; }
.sanmapa-card__cuerpo { padding: 14px 16px 14px 21px; }
.sanmapa-card__top { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.sanmapa-card__pin { width: 15px; height: 24px; flex: none; }
.sanmapa-card__cat { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--c); }
.sanmapa-card__km { margin-left: auto; font-size: 12px; font-weight: 600; color: var(--azul); background: #eef0ff; border-radius: 999px; padding: 3px 8px; }
.sanmapa .sanmapa-card__titulo { margin: 0; font-size: 16.5px; font-weight: 600; line-height: 1.3; color: var(--tinta); letter-spacing: 0; text-transform: none; }
.sanmapa-card__lugar { margin: 2px 0 0; font-size: 13px; color: var(--gris); }
.sanmapa .sanmapa-card__datos { list-style: none; margin: 12px 0 0; padding: 12px 0 0; border-top: 1px dashed var(--linea); display: grid; gap: 7px; }
.sanmapa-card__datos li { display: flex; gap: 9px; align-items: flex-start; font-size: 13.5px; line-height: 1.4; color: var(--tinta); margin: 0; }
.sanmapa-card__datos svg { width: 16px; height: 16px; flex: none; margin-top: 1px; fill: #9aa1b5; }
.sanmapa-card__datos a { color: var(--azul); text-decoration: none; word-break: break-word; }
.sanmapa-card__datos a:hover { text-decoration: underline; }
.sanmapa-card__detalle { margin: 10px 0 0; padding: 10px 12px; font-size: 13px; line-height: 1.5; color: var(--gris); background: var(--fondo); border-radius: 8px; }
.sanmapa-card__acciones { display: flex; gap: 8px; margin-top: 12px; }
.sanmapa-card__acciones:empty { display: none; }
.sanmapa-card__ver, .sanmapa-card__ir {
	display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 8px; cursor: pointer;
	font-weight: 500; font-size: 13px; line-height: 1; font-family: inherit; text-decoration: none; transition: background .15s;
}
.sanmapa-card__ver { border: 0; background: var(--azul); color: #fff; }
.sanmapa-card__ver:hover { background: #1515c4; }
.sanmapa-card__ir { border: 1px solid var(--linea); background: #fff; color: var(--tinta); }
.sanmapa-card__ir:hover { background: var(--fondo); color: var(--tinta); }
.sanmapa-card__ver svg, .sanmapa-card__ir svg { width: 15px; height: 15px; fill: currentColor; }

/* ---- popup del mapa (foto + franja celeste + botón Cómo llegar) ---- */
.sanmapa-popup .leaflet-popup-content-wrapper { padding: 0; border-radius: 16px; overflow: hidden; box-shadow: 0 10px 30px rgba(20, 24, 58, .25); }
.sanmapa-popup .leaflet-popup-content { margin: 0; width: 300px !important; }
.sanmapa .gm-style .gm-style-iw-c { padding: 0 !important; border-radius: 16px; max-height: none !important; }
.sanmapa .gm-style .gm-style-iw-d { overflow: hidden !important; max-height: none !important; padding: 0 !important; }
.smp { --c: #0795fe; position: relative; width: 300px; font-family: 'Poppins', system-ui, sans-serif; color: #14183a; background: #fff; }
.smp__foto { height: 150px; background: #dfe6ef center / cover no-repeat; }
.smp__tira { height: 44px; background: var(--c); }
.smp .smp__cerrar {
	position: absolute; top: 10px; right: 10px; z-index: 2; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%;
	background: rgba(20, 24, 58, .55); color: #fff; font-size: 20px; line-height: 30px; text-align: center; cursor: pointer;
}
.smp .smp__cerrar--claro { top: 7px; background: rgba(255, 255, 255, .28); }
.smp .smp__cerrar:hover { background: rgba(20, 24, 58, .8); color: #fff; }
.smp__banda { position: relative; display: flex; align-items: flex-start; gap: 10px; padding: 16px 18px 22px; background: #0795fe; color: #fff; }
.smp__nombre { flex: 1; min-width: 0; padding-right: 4px; }
.smp__nombre strong { display: block; font-size: 16px; font-weight: 600; line-height: 1.25; color: #fff; }
.smp__nombre span { display: block; margin-top: 3px; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .85); }
.smp .smp__ir { flex: none; display: flex; flex-direction: column; align-items: center; gap: 6px; margin-bottom: -46px; text-decoration: none; }
.smp .smp__ir em { font-style: normal; font-size: 11.5px; font-weight: 600; color: #fff; white-space: nowrap; }
.smp .smp__ir i {
	display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%;
	background: #fff; box-shadow: 0 4px 14px rgba(20, 24, 58, .25); transition: transform .15s;
}
.smp .smp__ir:hover i { transform: scale(1.06); }
.smp .smp__ir svg { width: 24px; height: 24px; fill: #0795fe; }
.smp__cuerpo { padding: 16px 18px; min-height: 40px; }
.smp__cuerpo > p:first-child, .smp__cuerpo li:first-child { padding-right: 62px; }
.smp__cuerpo ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.smp__cuerpo li { display: flex; gap: 8px; align-items: flex-start; margin: 0; font-size: 13px; line-height: 1.4; }
.smp__cuerpo svg { width: 15px; height: 15px; flex: none; margin-top: 2px; fill: #9aa1b5; }
.smp__cuerpo a { color: #0a0aa8; text-decoration: none; word-break: break-word; }
.smp__cuerpo a:hover { text-decoration: underline; }
.smp__cuerpo p { margin: 10px 0 0; font-size: 12.5px; line-height: 1.45; color: #5d6378; }
.smp__cuerpo ul + p { padding-top: 8px; border-top: 1px dashed #e3e6ef; }

/* ---- celular / tablet ---- */
@media (max-width: 900px) {
	.sanmapa { display: flex; flex-direction: column; height: auto; }
	.sanmapa__mapa-wrap { height: 58vh; min-height: 340px; flex: none; }
	.sanmapa__panel { border-left: 0; }
	.sanmapa__lista { overflow: visible; flex: none; }
	.sanmapa__titulo { font-size: 18px; }
}

/* ---- blindaje contra estilos del tema / Elementor ---- */
.sanmapa .sanmapa__cabecera h2.sanmapa__titulo {
	color: #fff !important; font-family: 'Poppins', sans-serif !important; font-size: 22px !important; font-weight: 600; line-height: 1.15; letter-spacing: .06em; margin: 0 0 14px; padding: 0;
}
.sanmapa button { text-transform: none; letter-spacing: normal; min-height: 0; box-shadow: none; font-family: 'Poppins', sans-serif; }
.sanmapa .sanmapa__cabecera .sanmapa__cerca {
	height: 36px; padding: 0 12px; background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, .45);
	border-radius: 8px; font-size: 13px; font-weight: 500; line-height: 1;
}
.sanmapa .sanmapa__cabecera .sanmapa__cerca:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.sanmapa .sanmapa__cabecera .sanmapa__cerca.is-on { background: #fff; border-color: #fff; color: #0795fe; }
.sanmapa .sanmapa-card .sanmapa-card__ver { background: var(--azul); color: #fff; border: 0; padding: 0 12px; height: 34px; font-size: 13px; font-weight: 500; border-radius: 8px; }
.sanmapa .sanmapa-card .sanmapa-card__ver:hover { background: #1515c4; color: #fff; }
.sanmapa .sanmapa__proveedor button { background: transparent; color: var(--gris); border: 0; padding: 8px 14px; font-size: 12px; border-radius: 999px; }
.sanmapa .sanmapa__proveedor button.is-on { background: var(--azul); color: #fff; }
.sanmapa .sanmapa__conteo { color: rgba(255, 255, 255, .85); font-family: 'Poppins', sans-serif; }

/* que el mapa no quede por encima del menú fijo del sitio */
.sanmapa { position: relative; z-index: 0; isolation: isolate; }
.sanmapa__ayuda {
	position: absolute; z-index: 1000; left: 50%; bottom: 18px; transform: translateX(-50%); pointer-events: none;
	background: rgba(20, 24, 58, .82); color: #fff; font: 500 13px/1.2 'Poppins', sans-serif; padding: 8px 14px; border-radius: 999px;
	opacity: 0; transition: opacity .2s;
}
.sanmapa__ayuda.is-on { opacity: 1; }
.sanmapa .sanmapa-card__ver, .sanmapa .sanmapa-card__ir { white-space: nowrap; }

/* estado inicial: sin resultados hasta que se busque */
.sanmapa__inicio { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; padding: 36px 22px; color: var(--gris); font-size: 14px; line-height: 1.5; }
.sanmapa__inicio svg { width: 34px; height: 34px; fill: var(--celeste); }
.sanmapa__inicio strong { color: var(--tinta); font-size: 16px; font-weight: 600; }
.sanmapa-card + .sanmapa__inicio { padding-top: 18px; }

/* ---- encabezado de página (igual a "Nuestra Historia": sección estirada a todo el ancho) ---- */
.sanmapa-enc {
	position: relative; z-index: 1; box-sizing: border-box;
	width: 100vw; max-width: 100vw; margin: 0 calc(50% - 50vw) 40px;
	padding: 22px 5% 26px; background: #fff; border-radius: 0;
	box-shadow: 8px 5px 9px rgba(0, 0, 0, .13);
}
.sanmapa-enc h1.sanmapa-enc__titulo {
	margin: 0; padding: 0; text-align: left;
	color: var(--e-global-color-secondary, #14284b);
}
.sanmapa-enc__punto { color: #6aa9e9; font-family: 'Poppins', sans-serif; }
.sanmapa-enc__migas {
	display: flex; flex-wrap: wrap; align-items: center; margin-top: -4px; position: relative; z-index: 5;
	font-family: 'Mulish', sans-serif; font-size: 16px; font-weight: 500; line-height: 1.5; color: #0795fe;
}
.sanmapa-enc__migas > span { display: inline-flex; align-items: center; margin-right: 40px; }
.sanmapa-enc__migas a, .sanmapa-enc__migas a:hover, .sanmapa-enc__migas a:focus, .sanmapa-enc__migas a:visited { color: #0795fe; text-decoration: none !important; }
.sanmapa-enc__migas strong { font-weight: 700; color: #0795fe; }
.sanmapa-enc__migas svg { width: 10px; height: 17px; margin-left: 8px; fill: #0795fe; flex: none; }
@media (max-width: 1024px) { .sanmapa-enc__migas { font-size: 15px; } }
@media (max-width: 767px) { .sanmapa-enc { padding: 18px 5% 20px; } .sanmapa-enc__migas { font-size: 14px; } .sanmapa-enc__migas > span { margin-right: 24px; } }

/* ---- versión pie de página (réplica del mapa del pie actual) ---- */
.sanmapa-pie { position: relative; z-index: 0; isolation: isolate; font-family: 'Poppins', sans-serif; }
.sanmapa-pie__barra {
	display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; justify-items: center; column-gap: 32px;
	margin: 0; padding: 12px 100px; background: #0795fe; color: #fff;
	font-family: 'Poppins', sans-serif; text-transform: uppercase; font-weight: 400; font-size: 20px; letter-spacing: .12em;
}
.sanmapa-pie__titulo { justify-self: start; margin: -40px 0 -46px; }
.sanmapa-pie__titulo strong { display: inline; font-size: 3rem; white-space: nowrap; color: rgba(255, 255, 255, .5); font-weight: 700; }
.sanmapa-pie__campo { display: flex; align-items: center; gap: 12px; }
.sanmapa-pie__campo + .sanmapa-pie__campo { margin-left: 24px; }
.sanmapa-pie .sanmapa-pie__campo label { margin: 0; line-height: 1.1; letter-spacing: .12em; font-weight: 600; white-space: nowrap; color: #fff; font-size: 20px; }
.sanmapa-pie .sanmapa-pie__campo select {
	height: 40px; line-height: 40px; padding: 0 12px; width: 200px; max-width: 200px; border: 0; border-radius: 6px;
	background: #fff; color: #000; font-family: 'Poppins', sans-serif; font-size: 14px; text-transform: none; letter-spacing: 0;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
}
.sanmapa-pie__mapa { width: 100%; display: block; background: #dfe7ef; }
@media (min-width: 969px) and (max-width: 1600px) { .sanmapa-pie__barra { padding: 12px 10px; column-gap: 1px; } }
@media (max-width: 968px) {
	.sanmapa-pie__barra { grid-template-columns: 1fr; justify-items: end; padding: 12px 16px; row-gap: 8px; }
	.sanmapa-pie__titulo { display: none; }
	.sanmapa-pie__campo { width: 100%; justify-content: flex-end; }
	.sanmapa-pie__campo + .sanmapa-pie__campo { margin-left: 0; }
}
