/* OSM + Leaflet adapter — keep Divi map canvas sizing; hide raw pin markup. */
.et_pb_map_container {
	min-width: 0;
	max-width: 100%;
	width: 100%;
	overflow: hidden;
}

.et_pb_map_container .et_pb_map.leaflet-container {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	z-index: 0;
}

.et_pb_map_container .et_pb_map_pin {
	display: none !important;
	visibility: hidden !important;
}

/*
 * Divi Map Design filters (hue/saturate/…) are remapped onto Leaflet tiles.
 * Keep marker/popup panes unfiltered so pins stay crisp.
 */
.et_pb_map_container .leaflet-marker-pane,
.et_pb_map_container .leaflet-shadow-pane,
.et_pb_map_container .leaflet-tooltip-pane,
.et_pb_map_container .leaflet-popup-pane {
	filter: none;
}

.et_pb_map_container .leaflet-popup-content-wrapper {
	padding: 0;
}

/*
 * Compact Title/Body balloons — Divi’s pin uses inline margin-top:10px on h3
 * and theme <p> margins; Leaflet’s default content margin is also chunky.
 * Prefer em so spacing scales with Title/Body font size.
 */
.et_pb_map_container .leaflet-popup-content {
	margin: 0.5em 0.65em;
	line-height: 1.35;
	font-size: 14px;
}

/* Author Design → Spacing pad replaces default content margin. */
.et_pb_map_container .leaflet-popup-content:has(> .tiiny-map-pin-popup-pad) {
	margin: 0;
}

.et_pb_map_container .leaflet-popup-content .tiiny-map-pin-popup-pad,
.gm-style .gm-style-iw .tiiny-map-pin-popup-pad {
	box-sizing: border-box;
}

/* Body/Title Link wrappers: inherit text color until Link tab styles stamp. */
.et_pb_map_container .leaflet-popup-content a.et_pb_map_pin_body_link,
.et_pb_map_container .leaflet-popup-content a.et_pb_map_pin_title_link,
.gm-style .gm-style-iw a.et_pb_map_pin_body_link,
.gm-style .gm-style-iw a.et_pb_map_pin_title_link {
	color: inherit;
	text-decoration: inherit;
}

.et_pb_map_container .leaflet-popup-content > h3,
.et_pb_map_container .leaflet-popup-content > strong {
	margin: 0 0 0.35em !important;
	padding: 0;
}

.et_pb_map_container .leaflet-popup-content > h3:last-child,
.et_pb_map_container .leaflet-popup-content > strong:last-child {
	margin-bottom: 0 !important;
}

.et_pb_map_container .leaflet-popup-content .infowindow {
	margin: 0;
	padding: 0;
}

.et_pb_map_container .leaflet-popup-content .infowindow > :first-child {
	margin-top: 0;
}

.et_pb_map_container .leaflet-popup-content .infowindow > :last-child {
	margin-bottom: 0;
}

.et_pb_map_container .leaflet-popup-content .infowindow p {
	margin: 0 0 0.35em;
	padding: 0;
}

.et_pb_map_container .leaflet-popup-content .infowindow p:last-child {
	margin-bottom: 0;
}

.et_pb_map_container .leaflet-control-attribution {
	font-size: 11px;
}

.et_pb_map_container .tiiny-map-pin-divicon {
	background: transparent;
	border: 0;
	overflow: visible;
}

.et_pb_map_container .tiiny-map-pin-wrap {
	pointer-events: none;
}

.et_pb_map_container .tiiny-map-pin-icon {
	speak: none;
	font-style: normal;
	font-variant: normal;
	text-transform: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

.et_pb_map_container .tiiny-map-pin-img {
	max-width: none;
	height: auto;
}

.et_pb_map_container .tiiny-map-pin-icon--divi {
	font-family: ETmodules, etmodules, 'ETmodules' !important;
	font-weight: 400;
}

.et_pb_map_container .tiiny-map-pin-icon--fa {
	font-family: FontAwesome, 'FontAwesome' !important;
	font-weight: 900;
}

/* Current location — Google-style blue pulse (VEM / Maps). */
.et_pb_map_container .tiiny-map-user-marker {
	background: transparent;
	border: 0;
	overflow: visible;
}

.et_pb_map_container .tiiny-map-user-dot {
	--tiiny-user-dot: #4285f4;
	position: absolute;
	left: 50%;
	top: 50%;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--tiiny-user-dot);
	transform: translate(-50%, -50%);
	box-shadow: 0 0 0 2px #fff;
}

.et_pb_map_container .tiiny-map-user-dot::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: var(--tiiny-user-dot);
	animation: tiiny-map-user-pulse 1.25s ease-out infinite;
}

@keyframes tiiny-map-user-pulse {
	0% {
		transform: scale(1);
		opacity: 0.55;
	}
	100% {
		transform: scale(2.7);
		opacity: 0;
	}
}

.et_pb_map_container .tiiny-map-locate .tiiny-map-locate__btn {
	width: 30px;
	height: 30px;
	line-height: 30px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #444;
	text-decoration: none;
	border: 0;
	background: #fff;
	padding: 0;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	font: inherit;
}

.et_pb_map_container .tiiny-map-locate .tiiny-map-locate__btn:hover {
	background: #f4f4f4;
}

.et_pb_map_container .tiiny-map-locate .tiiny-map-locate__btn.is-busy {
	opacity: 0.55;
}

.et_pb_map_container .tiiny-map-locate__icon {
	display: block;
	width: 16px;
	height: 16px;
	border: 2px solid currentColor;
	border-radius: 50%;
	position: relative;
}

.et_pb_map_container .tiiny-map-locate__icon::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	width: 4px;
	height: 4px;
	margin: -2px 0 0 -2px;
	border-radius: 50%;
	background: currentColor;
}
