.lobify-hotel-map-module {
	position: relative;
	width: 100%;
}

.lobify-hotel-map {
	position: relative;
	width: 100%;
	height: 320px;
	min-height: 260px;
	border: 0;
	border-radius: 0;
	background: #eef1f2;
	overflow: hidden;
	isolation: isolate;
}

.lobify-hotel-map .leaflet-container {
	font-family: var(--lobify-body-font, Arial, sans-serif);
}


/* v1.2.89 — Controles del mapa aislados de los estilos globales del Theme. */
.lobify-hotel-map__touch-guard {
	position: absolute;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	box-sizing: border-box;
	padding: 0 8px 30px 8px;
	pointer-events: auto;
	touch-action: pan-y;
}

.lobify-hotel-map__touch-guard[hidden] {
	display: none !important;
}

/*
 * Este control debe verse igual antes y después de activar el mapa. Se usan
 * valores propios + !important porque algunos hoteles personalizan globalmente
 * button/a y esos estilos no deben entrar dentro del componente Leaflet.
 */
.lobify-hotel-map .lobify-hotel-map__touch-guard-button,
.lobify-hotel-map .lobify-hotel-map__touch-guard-button:hover,
.lobify-hotel-map .lobify-hotel-map__touch-guard-button:focus,
.lobify-hotel-map .lobify-hotel-map__touch-guard-button:active {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: calc(100% - 16px) !important;
	min-height: 34px !important;
	margin: 0 !important;
	padding: 7px 11px !important;
	border: 1px solid rgba(42, 111, 158, 0.18) !important;
	border-radius: 2px !important;
	background: rgba(255, 255, 255, 0.96) !important;
	box-shadow: none !important;
	color: #2a6f9e !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 11px !important;
	font-style: normal !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: nowrap !important;
	cursor: pointer !important;
}

.lobify-hotel-map .lobify-hotel-map__touch-guard-button:hover,
.lobify-hotel-map .lobify-hotel-map__touch-guard-button:focus {
	background: #ffffff !important;
	color: #2a6f9e !important;
}

.lobify-hotel-map .lobify-hotel-map__touch-guard-button:focus-visible {
	outline: 2px solid #2a6f9e !important;
	outline-offset: 2px !important;
}

.lobify-hotel-map .lobify-hotel-map__touch-guard-label {
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
	color: inherit !important;
	font: inherit !important;
	letter-spacing: inherit !important;
	line-height: inherit !important;
	text-transform: inherit !important;
	white-space: inherit !important;
}

.lobify-hotel-map__touch-guard.is-interactive {
	align-items: flex-end;
	justify-content: flex-end;
	padding: 0 8px 30px 8px;
	pointer-events: none;
	touch-action: auto;
}

.lobify-hotel-map__touch-guard.is-interactive .lobify-hotel-map__touch-guard-button {
	pointer-events: auto !important;
}

@media (max-width: 699px) {
	.lobify-hotel-map.lobify-hotel-map--scroll-safe {
		touch-action: pan-y !important;
	}
}

/* Leaflet también queda aislado de los colores/tamaños globales de enlaces. */
.lobify-hotel-map .leaflet-control-zoom {
	border: 0 !important;
	box-shadow: 0 5px 18px rgba(0, 33, 40, 0.14) !important;
}

.lobify-hotel-map .leaflet-control-zoom a,
.lobify-hotel-map .leaflet-control-zoom a:hover,
.lobify-hotel-map .leaflet-control-zoom a:focus,
.lobify-hotel-map .leaflet-control-zoom a:active {
	width: 30px !important;
	height: 30px !important;
	border: 0 !important;
	background: #ffffff !important;
	color: #3f4548 !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 20px !important;
	font-weight: 700 !important;
	line-height: 30px !important;
	text-decoration: none !important;
	text-shadow: none !important;
}

.lobify-hotel-map .leaflet-control-zoom a:hover,
.lobify-hotel-map .leaflet-control-zoom a:focus {
	background: #f7f7f7 !important;
	color: #2f3437 !important;
}

.lobify-hotel-map .leaflet-control-attribution {
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 10px !important;
	font-weight: 400 !important;
	line-height: 1.25 !important;
	background: rgba(255, 255, 255, 0.92) !important;
	color: #4a5155 !important;
}

.lobify-hotel-map .leaflet-control-attribution a,
.lobify-hotel-map .leaflet-control-attribution a:hover,
.lobify-hotel-map .leaflet-control-attribution a:focus {
	color: #2a6f9e !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 10px !important;
	font-weight: 400 !important;
	line-height: 1.25 !important;
	text-decoration: none !important;
}

.lobify-hotel-map .lobify-hotel-map__marker-shell {
	background: transparent;
	border: 0;
}

.lobify-hotel-map__marker {
	position: relative;
	display: block;
	width: 56px;
	height: 56px;
	border: 6px solid #fff;
	border-radius: 50% 50% 50% 0;
	background: var(--lobify-hotel-map-marker-color, #fa6d7c);
	box-shadow: 0 8px 26px rgba(0, 33, 40, 0.28);
	transform: rotate(-45deg);
}

.lobify-hotel-map__marker::after {
	content: "";
	position: absolute;
	top: 14px;
	left: 14px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
}

.lobify-hotel-map .leaflet-popup-content-wrapper {
	border-radius: 12px;
	box-shadow: 0 8px 28px rgba(0, 33, 40, 0.16);
}

.lobify-hotel-map .leaflet-popup-content {
	margin: 14px 16px;
	font-family: var(--lobify-body-font, Arial, sans-serif);
	font-size: 13px;
	line-height: 1.45;
}

.lobify-hotel-map__popup-title {
	display: block;
	margin-bottom: 3px;
	color: #3f4548 !important;
	font-family: Arial, Helvetica, sans-serif !important;
	font-size: 14px !important;
	font-weight: 700 !important;
}

.lobify-hotel-map__popup-address {
	display: block;
	color: #555d61 !important;
	font-family: Arial, Helvetica, sans-serif !important;
}

@media (max-width: 640px) {
	.lobify-hotel-map-module {
		max-width: 100%;
		min-width: 0;
	}

	.lobify-hotel-map {
		box-sizing: border-box;
		height: 290px;
		left: auto;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		max-width: none;
		min-height: 250px;
		width: auto;
	}

	.lobify-hotel-map .leaflet-control-attribution {
		max-width: calc(100% - 16px);
		font-size: 9px;
	}
}

/* v1.2.47 — Botón de ruta a Google Maps, unido visualmente al mapa. */
.lobify-hotel-map__route {
	align-items: center;
	background: var(--lobify-hotel-map-route-bg, #008a95);
	border: 0;
	box-sizing: border-box;
	color: var(--lobify-hotel-map-route-color, #ffffff) !important;
	display: none;
	font-family: var(--lobify-button-font, "Montserrat"), sans-serif;
	font-size: var(--lobify-hotel-map-route-font-size, 18px);
	font-weight: 500;
	gap: 12px;
	justify-content: center;
	line-height: 1.2;
	margin: 0;
	min-height: var(--lobify-hotel-map-route-height, 64px);
	padding: 12px 22px;
	text-align: center;
	text-decoration: none !important;
	transition: filter 160ms ease;
	width: 100%;
}

.lobify-hotel-map__route:hover,
.lobify-hotel-map__route:focus {
	color: var(--lobify-hotel-map-route-color, #ffffff) !important;
	filter: brightness(0.93);
	text-decoration: none !important;
}

.lobify-hotel-map__route:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: -5px;
}

.lobify-hotel-map__route-icon {
	align-items: center;
	display: inline-flex;
	flex: 0 0 auto;
	height: 28px;
	justify-content: center;
	width: 28px;
}

.lobify-hotel-map__route-icon svg {
	display: block;
	height: 28px;
	width: 28px;
}

.lobify-hotel-map__route-text {
	min-width: 0;
}

@media (min-width: 1181px) {
	.lobify-hotel-map-module--route-desktop .lobify-hotel-map__route {
		display: flex;
	}

	.lobify-hotel-map-module--route-desktop .lobify-hotel-map {
		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
	}

	.lobify-hotel-map-module--route-desktop .lobify-hotel-map__route {
		border-radius: 0;
	}
}

@media (min-width: 641px) and (max-width: 1180px) {
	.lobify-hotel-map-module--route-tablet .lobify-hotel-map__route {
		display: flex;
	}

	.lobify-hotel-map-module--route-tablet .lobify-hotel-map {
		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
	}

	.lobify-hotel-map-module--route-tablet .lobify-hotel-map__route {
		border-radius: 0;
	}
}

@media (max-width: 640px) {
	.lobify-hotel-map-module--route-mobile .lobify-hotel-map__route {
		display: flex;
	}

	.lobify-hotel-map-module--route-mobile .lobify-hotel-map {
		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
	}

	.lobify-hotel-map-module--route-mobile .lobify-hotel-map__route {
		border-radius: 0;
		padding-left: 16px;
		padding-right: 16px;
	}
}



/* v1.3.24 — marcador personalizado del hotel */
.lobify-hotel-map__marker-custom {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 68px;
	height: 68px;
}

.lobify-hotel-map__marker-custom img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	filter: drop-shadow(0 8px 13px rgba(0, 33, 40, 0.24));
}
